?? 0.cpp
字號:
#include <iostream.h>
void main()
{
int a[100],b[50],i,L,X;
char l[100];
cout<<"進 行 編 碼 請 在 X= 后 輸 入 1."<<endl<<"進 行 驗 碼 檢 錯 請 在 X= 后 輸 入 0."<<endl;
cout<<"X=";
cin>>X;
if(X==1)
{
cout<<"按(7,4)漢明碼編碼:"<<endl;
cout<<"輸 入 信 息 序 列 的 長 度 L :( L 應 為 4 的 整 數 倍!)"<<endl;
cout<<"L= ";
cin>>L;
cout<<"輸 入 二 進 制 信 息 序 列"<<endl;
for(i=1;i<=L;i++)
cin>>l[i];
cout<<endl;
for(i=1;i<=L;i++)
a[i]=(l[i]-48);
for(i=1;i<=(L/4);i++)
{
b[3*i-2]=(a[4*i-2]+a[4*i-1]+a[4*i])%2;
b[3*i-1]=(a[4*i-3]+a[4*i-1]+a[4*i])%2;
b[3*i]=(a[4*i-3]+a[4*i-2]+a[4*i])%2;
}
for(i=1;i<=L;i++)
{
cout<<a[i]<<" ";
if(i%4==0)
{
cout<<" ";
cout<<b[i/4*3-2]<<" "<<b[i/4*3-1]<<" "<<b[i/4*3];
cout<<endl;
}
}
}
if(X==0)
{
cout<<"對(7,4)漢明碼檢碼:"<<endl;
cout<<"輸 入 信 息 序 列 的 長 度 L :( L 應 為 7 的 整 數 倍!)"<<endl;
cout<<"L= ";
cin>>L;
cout<<"輸 入 二 進 制 信 息 序 列"<<endl;
for(i=1;i<=L;i++)
cin>>l[i];
cout<<endl;
for(i=1;i<=L;i++)
a[i]=(l[i]-48);
for(i=1;i<=(L/7);i++)
{
b[3*i-2]=(a[7*i-5]+a[7*i-4]+a[7*i-3]+a[7*i-2])%2;
b[3*i-1]=(a[7*i-6]+a[7*i-4]+a[7*i-3]+a[7*i-1])%2;
b[3*i]=(a[7*i-6]+a[7*i-5]+a[7*i-3]+a[7*i])%2;
}
for(i=1;i<=L;i++)
{
cout<<a[i]<<" ";
if(i%7==0)
{
if((b[i/7*3-2]==0)&&(b[i/7*3-1]==1)&&(b[i/7*3]==1)) cout<<"第一位有錯!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==0)&&(b[i/7*3]==1)) cout<<"第二位有錯!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==1)&&(b[i/7*3]==0)) cout<<"第三位有錯!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==1)&&(b[i/7*3]==1)) cout<<"第四位有錯!"<<endl;
if((b[i/7*3-2]==1)&&(b[i/7*3-1]==0)&&(b[i/7*3]==0)) cout<<"第五位有錯!"<<endl;
if((b[i/7*3-2]==0)&&(b[i/7*3-1]==1)&&(b[i/7*3]==0)) cout<<"第六位有錯!"<<endl;
if((b[i/7*3-2]==0)&&(b[i/7*3-1]==0)&&(b[i/7*3]==1)) cout<<"第七位有錯!"<<endl;
cout<<endl;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -