数组筛选不能正确输出,请赐教问题出在哪
该程序是想在12个二维数组中,依次从第一个数组开始自上而下的对比查找出有4个相同码并且另一个不相同码是在同一个位置上的,就将该数组赋予零并不做输出。如果同是相同4码但另一个不相同码是不在数组同一个位置的则照常输出。但该程序不能正确输出请赐教问题出在哪?多谢啦(2 6 14 15 22应该正常做输出才对)下面是该程序和12个数组。
2 13 14 15 22
6 12 13 14 21
2 13 14 15 18
6 8 9 19 20
4 10 15 17 22
2 7 11 13 17
2 6 14 15 22
11 12 16 18 20
4 9 11 15 21
2 13 14 15 19
1 9 15 16 19
2 13 14 15 21
程序代码:
#include<stdio.h> #include<math.h> int jbb2; void abc4(int a[][5],int jbb2); void abc5(int a[][5],int jbb2); void main() { int a[2000][5]; jbb2=12; abc4(a,jbb2); abc5(a,jbb2); } void abc4(int a[][5],int jbb2) { int i,j; FILE *pf; if((pf=fopen("d:\\001A数组.txt","r"))==NULL) { printf("Cannot open file!"); return; } for(i=0;i<jbb2;i++) for(j=0;j<5;j++) { fscanf(pf,"%4d",&a[i][j]); fscanf(pf,"\n"); } fclose(pf); } void abc5(int a[][5],int jbb2) { int i,j,s,counter,counter1; for(i=0;i<jbb2;i++) { counter1=0; for(s=i+1;s<jbb2;s++) { counter=0; for(j=0;j<5;j++) { if(a[s][j]==a[i][j]) counter++; if(counter==4) { a[s][j]!=a[i][j]; counter1=j; } if(counter==4 && counter1==j) a[s][j]=0; } } if(a[i][4]>0) { for(j=0;j<5;j++) printf("%4d",a[i][j]); printf("\n"); } } }