#include<stdio.h>
#include<string.h>
#define N 100
main() /*(2,1,3)juanjifa*/
{
FILE *fp;
char *m,*p;
int a[N],b[N],x[N];
int c[6];
int g[N][N];
int cnt,i,j,s,n=0;
int flag=0;
printf("\nplease input the 01array:");
while(1) /*input 0 1 array*/
{
gets(m);
cnt=strlen(m);
for(i=0;i<cnt;i++)
if(*(m+i)!='1'&&*(m+i)!='0')
break;
if(i==cnt)
flag=1;
if(!flag)
{
printf("input error!");
printf("\nplease input again:");
}
else
break;
}
printf("shengchengduoxiangshi:"); /*shengchengduoxiangshi*/
while(1)
{
flag=0;
gets(p);
for(i=0;i<6;i++)
if(*(m+i)!='1'&&*(m+i)!='0')
break;
if(i==6)
flag=1;
if((*p=='0'&&*(p+2)=='0'&&*(p+4)=='0')||(*(p+1)=='0'&&*(p+3)=='0'&&*(p+5)=='0'))
flag=0;
if(!flag)
{
printf("input error!");
printf("\nplease input again:");
}
else
break;
}
for(i=0;i<6;i++)
if(*(p+i)=='0')
c[i]=0;
else
c[i]=1;
printf("shengchengduoxiangshi:");
for(i=0;i<6;i++)
printf("%d ",c[i]);
printf("\n");
for(i=0;i<cnt;i++)
if(*(m+i)=='0')
a[i]=0;
else
a[i]=1;
b[0]=0;
b[1]=0;
for(j=0;j<cnt;j++)
b[j+2]=a[j];
b[cnt+3]=0;
b[cnt+4]=0;
printf("m array start:");
for(i=0;i<cnt+4;i++)
printf("%d ",b[i]); /*start*/
printf("\n");
for(i=0;i<cnt;i++) /*shengchengjuzhen*/
for(j=0;j<6;j++)
g[i][j+2*i]=c[j];
for(i=1;i<cnt;i++)
for(j=0;j<2*i;j++)
g[i][j]=0;
for(i=0;i<cnt-1;i++)
for(j=6+2*i;j<2*i+6;j++)
g[i][j]=0;
printf("shengchengjuzhen G:\n");
for(i=0;i<cnt;i++)
{
for(j=0;j<2*cnt+4;j++)
printf("%d ",g[i][j]);
printf("\n");
}
for(i=0;i<2*cnt+4;i++) /*bianma*/
{
s=0;
for(j=0;j<cnt;j++)
s^=a[j]*g[j][i]; /*x*/
x[n++]=s;
}
printf("bianmahoushuchu:\n");
for(n=0;n<2*cnt+4;n++)
printf("%d ",x[n]);
if((fp=fopen("juanji.txt","w"))==NULL)
{
printf("can't open the file!\n");
exit(1);
}
fprintf(fp,"juanjima:\n");
for(i=0;i<2*cnt+4;n++)
fprintf(fp,"%d",x[i]);
fclose(fp);
}
评论0