朋友的代码,已AC,但是我感觉在判断第5种情况时会不会有点问题。假设这三种情况为1、2、3。矩阵第一个数据符合1情况,随后数据符合2情况,这样也符合代码里case 5的判定条件,但这并不符合实际5的情况呀。有没有大佬能解惑的
#include<stdio.h>
int main(){
int n ,is[8]={};
scanf("%d",&n);
char f1[10][10],f2[10][10];
for(int i=0;i<n;i++){
scanf("%s",f1[i]);
}
for(int i=0;i<n;i++){
scanf("%s",f2[i]);
}
for(int k=1;k<8;k++){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
switch (k){
case 1:is[k]=(f1[i][j]==f2[j][n-1-i])?k:0;break;
case 2:is[k]=(f1[i][j]==f2[n-1-i][n-1-j])?k:0;break;
case 3:is[k]=(f1[i][j]==f2[n-1-j][i])?k:0;break;
case 4:is[k]=(f1[i][j]==f2[i][n-1-j])?k:0;break;
case 5:is[k]=(f1[i][j]==f2[n-1-j][n-1-i]||f1[i][j]==f2[n-1-i][j]||f1[i][j]==f2[j][i])?k:0;break;
case 6:is[k]=(f1[i][j]==f2[i][j])?k:0;break;
default:is[k]=k;break;
}
if(is[k]==0)
break;
}
if(is[k]==0)
break;
}
}
for(int m=1;m<8;m++){
if(is[m]!=0){
printf("%d",is[m]);
break;
}
}
}