如何用C语言编个程序啊???下面这个

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:03:30
判断一个二维数组构成的方阵,它的每一行,每一列和对角线之和均相等啊????请教教我~~谢谢了~

先随便找一行求出它的和,然后再判断每行每列和对角线之和是不是这个数

#include <stdio.h>
int n;
int a[100][100];
main()
{
int i,j;
int sum,sum2;
puts("请输出方阵的边长n:");
scanf("%d",&n);
printf("请输入方阵的各个元素,每行%d个,共%d行\n",n,n);
for (i=0;i<n;i++)
for (j=0;j<n;j++) scanf("%d",&a[i][j]);
for (i=0,sum=0;i<n;i++) sum+=a[0][i];
for (i=0;i<n;i++)
{
for (sum2=0,j=0;j<n;j++) sum2+=a[i][j];
if (sum2!=sum) break;
}
if (i==n)
for (i=0;i<n;i++)
{
for (sum2=0,j=0;j<n;j++) sum2+=a[j][i];
if (sum2!=sum) break;
}
if (i==n)
{
for (sum2=0,i=0;i<n;i++) sum2+=a[i][i];
if (sum2==sum)
{
for (sum2=0,i=0;i<n;i++) sum2+=a[i][n-1-i];
if (sum2==sum) puts("yes");
}
else puts("no");
}
else puts("no");
}

你自己想想啊!
a[i][j] i , j 从 0 到 n
a[i][0]到a[i][n]的和相等