文章
7
粉丝
502
获赞
4
访问
26.1k
#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的做法有点问题
如果出现重复的值就会出问题:如果旋转角度的结果有多个,则输出最小的那个。