输入一个整数n及一个n阶方阵,判断该方阵是否以主对角线对称,输出“Yes”或“No”。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组数据的第一行输入一个整数n(1<n<100),接下来输入n阶方阵(共n行,每行n个整数)。
输出格式:
对于每组测试,若该方阵以主对角线对称,则输出“Yes”,否则输出“No”。引号不必输出。
输入样例:
1
4
1 2 3 4
2 9 4 5
3 4 8 6
4 5 6 7
输出样例:
Yes
#include<stdio.h>
int main()
{
int m = 0;
int n = 0;
int arr[100][100];
scanf("%d", &m);
for (int i = 1; i <= m; i++)
{
scanf("%d", &n);//这个n的输入要放在里面——因为要多组测试
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &arr[i][j]);
}
}
int t = 1;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (arr[i][j] != arr[j][i])
{
t = 0;
break;//这个break只会终止内部循环
}
}
//利用下面这个if语句终止循环——但要注意其位置
if (t == 0)
{
break;
}
}
if (t == 1)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
//!!!!!!!!这个程序的i,j多次在变换,因此将他们用作局部变量要更好
return 0;
}