犯了題目沒看清楚的錯誤,是先行再列....不是先列再行
改一改後基本上沒問題
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a1,a2,a3,a4,i,j,k,l,pi,b1,b2,f,n;
char s1[10][40][41],s2[10][40][41];
while(scanf("%d%d%d%d",&a1,&a2,&a3,&a4)!=EOF){
pi=a3*a4;
for(i=0;i<a1;++i){
for(j=0;j<a4;++j){
scanf("%s",s1[i][j]);
}
}
for(i=0;i<a2;++i){
for(j=0;j<a4;++j){
scanf("%s",s2[i][j]);
}
}
for(i=0;i<a2;++i){
for(j=0,f=0;j<a1;++j){
for(k=0,b1=0,b2=0;k<a4;++k){
for(l=0;l<a3;++l){
if(s1[j][k][l]=='-') continue;
else if(s1[j][k][l]!=s2[i][k][l]) ++b1;
else ++b2;
}
}
//printf("%d %d\n",b2,b1);
if(b2>=(4*b1)){
f=1;
goto A;
}
}
A:;
if(f) printf("Y\n");
else printf("N\n");
}
}
return 0;
}