lidra

c语言实现旋转矩阵

题目:

任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。

要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。

源码实现如下:

#include<stdio.h>
#include<string.h>
int swit(int a[][10],int b[][10],int n);
void main()
{
int n,a[10][10],b[10][10],i=0,j=0,angle;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&b[i][j]);
angle=swit(a,b,n);
printf("%d\n",angle);
}

int swit(int a[][10],int b[][10],int n)
{
int angle=0,i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(angle==0)
{
if(a[i][j]==b[i][j])
continue;
else
angle=90;
}
if(angle==90)
{
if(a[i][j]==b[j][n-1-i])
continue;
else
angle=180;
}
if(angle==180)
{
if(a[i][j]==b[n-1-i][n-1-j])
continue;
else
angle=270;
}
if(angle==270)
{
if(a[i][j]==b[n-j-1][i])
continue;
else
return -1;
}

}
return angle;
}

发表于 2014-09-12 09:40  lidra  阅读(359)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-12-29
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
  • 2021-09-28
  • 2021-11-19
  • 2022-12-23
猜你喜欢
  • 2021-05-05
  • 2022-12-23
  • 2021-04-10
  • 2021-11-19
  • 2021-11-19
  • 2021-11-29
相关资源
相似解决方案