问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入1-9这9个数字的一种任意排序。
#include <iostream>
#include <stdio.h>
int main( )
{
int num[3][3];//接收九宫格数据
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
scanf("%d",&num[i][j]);
}
int sum[3]={0};
//判断每行是否相等
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
sum[i]=sum[i]+num[i][j];
}
}
int x;
if(sum[0]==sum[1]&&sum[1]==sum[2])
x=sum[0];//若每行相等,值赋给X
else
x=0;
//判断每列是否相等
for(int i=0;i<3;i++)
{
sum[i]=0;
for(int j=0;j<3;j++)
{
sum[i]=sum[i]+num[j][i];
}
}
int y;
if(sum[0]==sum[1]&&sum[1]==sum[2])
y=sum[0];//若每列相等,值赋给y
else
y=2;
//判断对角线是否相等
int a=0,b=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(i==j)
a=a+num[i][j];
if(i+j==2)
b=b+num[i][j];
}
}
int z;
if(a==b)
z=a;//若对角线相等值赋给Z
else
z=2;
if(x==y&&x==z)//若行,列,对角线相等则输出1
{
printf("1");
}
else
{
printf("0");
}
return 0;
}