7-5 判断对称矩阵 (10 分)
将矩阵的行列互换得到的新矩阵称为转置矩阵。
把m×n矩阵 A=
⎣
⎢
⎢
⎡
a
11
a
21
⋅⋅⋅
a
m1
a
12
a
22
⋅⋅⋅
a
m2
⋅⋅⋅
⋅⋅⋅
⋅⋅⋅
⋅⋅⋅
a
1n
a
2n
⋅⋅⋅
a
mn
⎦
⎥
⎥
⎤
的行列互换之后得到的矩阵,称为 A 的转置矩阵,记作 A
T
,
即
A
T
=
⎣
⎢
⎢
⎡
a
11
a
12
⋅⋅⋅
a
1n
a
21
a
22
⋅⋅⋅
a
2n
⋅⋅⋅
⋅⋅⋅
⋅⋅⋅
⋅⋅⋅
a
m1
a
m2
⋅⋅⋅
a
mn
⎦
⎥
⎥
⎤
由定义可知, A 为m×n 矩阵,则 A
T
为 n×m 矩阵。例如, A=[
1
−2
0
1
2
3
] , A
T
=
⎣
⎡
1
0
2
−2
1
3
⎦
⎤
. n×n矩阵称之为 n阶方阵,
如果 n 阶方阵和它的转置相等,即 A
T
=A ,则称矩阵 A 为对称矩阵。
输入格式:
在第一行内给出n值(1<n<100)。
从第二行以后给出n阶矩阵所有行的元素值。
输出格式:
当输入的n阶矩阵是对称矩阵,输出“Yes”,否则输出“No”。
输入样例:
3
1 0 2
-2 1 3
4 3 2
输出样例:
No
输入样例:
3
1 -2 4
-2 1 3
4 3 2
输出样例:
Yes
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[101][101],b[101][101],n,x,f=1;
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&x);
a[i][j]=x;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=a[j][i]) f=0;
}
}
if(f) printf("Yes");
else printf("No");
return 0;
}