题目正文
输入一个N维矩阵,判断是否对称。
输入
输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。
接下来的N行,每行包括N个数,表示N*N矩阵的元素。
输出
可能有多组测试数据,对于每组数据,
输出"Yes!”表示矩阵为对称矩阵。
输出"No!”表示矩阵不是对称矩阵。
样例
1
68
3
1 70 25
70 79 59
25 59 63
3
6 46 82
28 62 92
96 43 28
Yes!
Yes!
No!
代码
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
#include<stdio.h>
#include<iostream>
using namespace std;
int a[100][100];
int n;
int symmetry();
int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>a[i][j];
}
}
if(symmetry())
cout<<"Yes!"<<endl;
else
cout<<"No!"<<endl;
}
}
int symmetry()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(a[i][j]!=a[j][i])
return 0;
}
}
return 1;
}
总结
这题是一题简单的对称矩阵问题,但是我在写的时候遇见了一个困难就是我输出的YES是几维就是几个,后来我把break改成了return 0,但是也不行,因为return会跳出所有的循环,只能输入一组数据,最后我改成了自定义一个函数,用return 进行返回值,在主函数里判断。