题目
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。
输入
无
输出
与上面的样例输入对应的输出。
例:
样例输入
无
样例输出
无
解题思路
按照题目逐行、逐列、对角线判断是否均相等即可。
代码
#include<stdio.h>
int main()
{
int a[3][3],i,j,b[3],c[3];
for (i=0;i<3;i++)
{
b[i] = 0;
for (j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
b[i]+=a[i][j];//b存储了每一行元素的和
}
}
for (i=0;i<3;i++)//判断每一行加和是否相等
{
if (i!=0 && b[i]!=b[i-1])
{
printf("0");
return 0;
}
}
for (i=0;i<3;i++)
{
c[i] = 0;
for (j=0;j<3;j++)
c[i]+=a[j][i];
if (i!=0)
{
if (c[i]!=c[i-1])
{
printf("0");
return 0;
}
}
else if (c[0]!=b[0])
{
printf("0");
return 0;
}
}
if ((a[0][0]+a[1][1]+a[2][2]) != b[0] || (a[0][2]+a[1][1]+a[2][0]) != b[0])
{
printf("0");
return 0;
}
printf("1");
return 0;
}