算法提高 9-1九宫格
时间限制:1.0s 内存限制:256.0MB
问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。
样例输出
与上面的样例输入对应的输出。
例:
例:

数据规模和约定
输入1-9这9个数字的一种任意排序。
# include <stdio.h>
int fun(int a[3][3])
{
int i , j ,k=0,n=3;
int sum[8]={0};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
sum[k]+=a[i][j];
sum[n]+=a[j][i];
}
k++;
n++;
sum[6]+=a[i][i];
sum[7]+=a[i][2-i];
}
for(i=1;i<8;i++)
{
if(sum[i]!=sum[i-1])
return 0;
}
return 1;
}
int main (void)
{
int a[3][3]={0};
int i ,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
if(fun(a))
printf("1");
else
printf("0");
return 0 ;
}
# include <stdio.h>
int fun(int a[3][3]){
int i , j ,k=0,n=3;
int sum[8]={0};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
sum[k]+=a[i][j];
sum[n]+=a[j][i];
}
k++;
n++;
sum[6]+=a[i][i];
sum[7]+=a[i][2-i];
}
for(i=1;i<8;i++)
{
if(sum[i]!=sum[i-1])
return 0;
}
return 1;
}
int main (void)
{
int a[3][3]={0};
int i ,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
if(fun(a))
printf("1");
else
printf("0");
return 0 ;
}