思路指导
一.什么是矩阵
n * n 的二维数组 ,存储着n平方个元素
二.如何判断是否对称
矩阵中对角线左右两侧元素是否相同
如 3*3的数组为例
1 2 3
4 5 6
7 8 9
2与4比较,3与7比较,6与8。
也就是原数组arr1[i][j]是否和arr1[j][i]存在有相等的元素
三.判断返回
如果数组中有不同的count++
利用if语句判断count是否为0
代码展示
#include <stdio.h>
int pd(int a)
{
int arr1[a][a],j,i,count;
for(int i = 0;i< a;i++) //输入矩阵元素//
{
for(int j = 0;j < a;j++)
{
scanf("%d",&arr1[i][j]);
}
}
for(int i = 0;i<a;i++) //打印矩阵//
{
for(int j = 0;j<a;j++)
{
printf("%d\t",arr1[i][j]);
}
printf("\n");
}
for(int i = 0;i<a;i++)
{
for(int j = 0;j<a;j++)
{
if(arr1[i][j] != arr1[j][i]) //判断如果对角线两边是否有不同//
{
count++;
}
}
}
if(count != 0)
{
return 0; //返回0不对称//
}
else
{
return 1; //返回1对称//
}
}
int main()
{
int n,z;
printf("请输入矩阵的行列数n:\n");
scanf("%d",&n);
z = pd(n); //传参到函数
printf("%d\n",z);
return 0;
}