www.pudn.com > Hm.zip > Hm.cpp


#include 
#include 
void hanming() 
{ 
 int i,n,k=2; 
 int h[20]; 
 for(i=0;i<20;i++)h[i]=0; 
 cout<<"@@@@@@@@ 请输入要转换的有效位的位数(n)@@@@@@@@"<>n; 
 while(pow(2,k)>h[i]; 
 } 
 h[1]=(h[3]+h[5]+h[7]+h[9]+h[11]+h[13]+h[15])%2; 
 h[2]=(h[3]+h[6]+h[7]+h[10]+h[11]+h[14]+h[15])%2; 
 h[4]=(h[5]+h[6]+h[7]+h[12]+h[13]+h[14]+h[15])%2; 
 h[8]=(h[9]+h[10]+h[11]+h[12]+h[13]+h[14]+h[15])%2; 
 for(i=1;i<=n+k;i++)cout<=5&&n<=7){ 
     // k=3; 
     p1=(h[1]+h[3]+h[5]+h[7])%2; 
     p2=(h[2]+h[3]+h[6]+h[7])%2; 
     p4=(h[4]+h[5]+h[6]+h[7])%2; 
     m=4*p4+2*p2+p1; 
     return m; 
  } 
  if(n>=9&&n<=15){ 
     //k=4; 
     p1=(h[1]+h[3]+h[5]+h[7]+h[9]+h[11]+h[13]+h[15])%2; 
     p2=(h[2]+h[3]+h[6]+h[7]+h[10]+h[11]+h[14]+h[15])%2; 
     p4=(h[4]+h[5]+h[6]+h[7]+h[12]+h[13]+h[14]+h[15])%2; 
     p8=(h[8]+h[9]+h[10]+h[11]+h[12]+h[13]+h[14]+h[15])%2; 
     m=8*p8+4*p4+2*p2+p1; 
     return m; 
  } 
  else{ 
      cout<<"!!!!查错错误!!!!"<>n; 
  cout<<"请输入要查错的码字(每输入一位按一次回车) "<>h[i]; 
     m=jiaoyan(h,n); 
  if(m==0)cout<<"码字没有错误 "<>coco; 
}