个人理解
要判断清楚发生变化的矩阵与原矩阵之间的关系
很容易混淆 分情况讨论
太久没用数组传 居然忘记怎么写实参了
orz
记录一下
实参直接写数组名即可 judge(judged,change)
形参可以有多种形式 int judge(char *str); int judge(char str[]);
AC代码
#include<bits/stdc++.h>
using namespace std;
char atrix[11][11],change[11][11],judged[11][11];
int n;
bool judge(char A[11][11],char B[11][11])
{
int o,p;
for(o=0; o<n; o++)
{
for(p=0; p<n; p++)
{
if(A[o][p]!=B[o][p])
return false;
}
}
return true;
}
int main()
{
scanf("%d",&n);
getchar();
int i,j;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
scanf("%c",&atrix[i][j]);
getchar();
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
scanf("%c",&change[i][j]);
getchar();
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
judged[i][j]=atrix[i][j];
}
if(judge(judged,change))
{
printf("4\n");
return 0;
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
judged[i][j]=atrix[n-i-1][n-j-1];
}
if(judge(judged,change))
{
printf("3\n");
return 0;
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
judged[i][j]=atrix[j][n-i-1];
}
if(judge(judged,change))
{
printf("2\n");
return 0;
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
judged[i][j]=atrix[n-j-1][i];
}
if(judge(judged,change))
{
printf("1\n");
return 0;
}
printf("5\n");
return 0;
}