/*
问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,
打印1。否则打印0。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入1-9这9个数字的一种任意排序。
*/
#include <stdio.h>
void shuru(int [][3] , int );
int shuchu(int [][3] , int );
void q_hh(int [][3] , int, int [] ) ;
void q_lh(int [][3] , int, int [] ) ;
int main(void)
{
int jgg[3][3];
shuru(jgg , 3);
printf("%d\n",shuchu(jgg , 3 ) );
return 0;
}
void q_lh(int jgg[][3] , int n , int he[] )
{
int i;
for(i = 0 ; i < n; i ++)
{
int j;
for( j = 0 ; j < n ; j ++)
{
he[i+3]+=jgg[j][i];
}
}
}
void q_hh(int jgg[][3] , int n , int he[] )
{
int i;
for(i = 0 ; i < n; i ++)
{
int j;
for( j = 0 ; j < n ; j ++)
{
he[i]+=jgg[i][j];
}
}
}
int shuchu(int jgg[][3] , int n )
{
int he[8]={0};
q_hh(jgg , n , he ) ;
q_lh( jgg , n , he );
he[6]=jgg[0][0]+jgg[1][1]+jgg[2][2];
he[7]=jgg[2][0]+jgg[1][1]+jgg[0][2];
int i;
for(i = 0 ; i <7; i ++)
{
if(he[i]!=he[i+1])
{
return 0;
}
}
return 1;
}
void shuru(int jgg[][3] , int n)
{
int i;
for( i = 0; i < n ; i++)
{
int j;
for( j = 0; j < n ; j++)
{
scanf("%d",&jgg[i][j]);
}
}
}