文章
7
粉丝
502
获赞
2
访问
16.3k
#include
#include
#include
#include
#include
using namespace std;
int f1(int a[200][200],int b[200][200],int n)
{
int c[200][200];
for (int i = 0; i < n; i++)//分类讨论
{
for (int j = 0; j < n; j++)
{
if (a[i][j] == b[i][j])//矩阵完全一致
return 0;
else if (a[i] [j] == b[i][n-j-1])//矩阵顺时针旋转90度
return 90;
}
}
for (int i = n-1; i >=0; i--)//阵顺时针旋转180度
{
for (int j = n-1; j >= 0; j--)
{
if (b[i][j] == a[i][j])
return 180;
c[i][j] = b[i][j];//c存储旋转后的矩阵
}
}
for (int i = 0; i < n; i++)//分类讨论
{
for (int j = 0; j < n; j++)
{
if (a[i] [j] == c[i][n-j-1])//a与c比较,矩阵旋转270度
return 270;
}
}
}
int main()
{
int n ;
int a[200][200] = {0};
int b[200][200] = {0};
int c[200][200] = {0};
while (cin >> n)//输入两个矩阵
{
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
for (int i = 0; i < n; i++)
for (...
登录后发布评论
这里if判断其中一个相等直接return的做法有点问题
如果出现重复的值就会出问题:如果旋转角度的结果有多个,则输出最小的那个。