以下程序是对比找出两个文件中二维数组有相同四码的数。如是四码相同的数组就输出并同时输出该数组的sum得数(该sum数要加入在输出数组的第六位上)。以下是我写的程序和两个文件中的数组。多谢指教啦!
FILE01 FILE02 5 6 11 12 21 5 10 11 12 21 5 8 14 15 22 1 10 11 12 21 3 5 8 9 21 8 9 12 14 22 1 5 11 12 21 5 6 11 12 22 #include<stdio.h> int b[500][5]; int OK; void xdu1(int a[][5],int OK); int KO; void xdu2(int b[][5],int KO); int OKKO; void shan3(int a[][5],int OK); int OKKO1; void main()
{ int a[500][5]; OK=3; xdu1(a,OK); KO=5; xdu2(b,KO); shan3(a,OK); printf(“OKKO1=%d”,OKKO1); printf(“\n”); }
void xdu1(int a[][5],int OK) { int i,j; FILE *pf; if((pf=fopen(“e:\\FILE01.txt”,”r”))==NULL) { printf(“Cannot open file!028v”); return; } for(i=0;i<OK;i++) for(j=0;j<5;j++) { fscanf(pf,”%4d”,&a[i][j]); fscanf(pf,”\n”); } fclose(pf); }
void xdu2(int b[][5],int KO) { int i,j; FILE *pf1; if((pf1=fopen(“e:\\FILE02.txt”,”r”))==NULL) { printf(“Cannot open file!029v”); return; } for(i=0;i<KO;i++) for(j=0;j<5;j++) { fscanf(pf1,”%4d”,&b[i][j]); fscanf(pf1,”\n”); } fclose(pf1); }
void shan3(int a[][5],int OK) { int counter1,sum; int i,j,s,AA; for(i=0;i<OK;i++) { counter1=0; for(s=0;s<KO;s++) { AA=0;sum=0; for(j=0;j<5;j++) if(b[s][j]==a[i][j])//对比相同数 { AA++; sum=AA+j+sum;//累加计数 if(AA==4) counter1=AA; } } if(counter1>=4) { a[i][5]=sum; //该数就是加入的第六位置上的数。问题是他加入的不是应输出数组的后边。(应输出的是:5 6 11 12 21) for(j=0;j<6;j++) printf(“%4d”,a[i][j]); printf(“\n”); OKKO1++; } } }
|