题目描述
相信大家都玩过“九宫格”这个游戏!下面我就再简述一下规则,在一个9*9的网格中填数字1~9,只要使得1~9这9个数字在每行和每列出现且仅出现一次即可。现给出一个这样的9*9矩阵,判断它是否满足上述规则,并求两条对角线和。
输入要求
输入一个9*9数的矩阵。
输出要求
输出有两行。第一行:如果输入的矩阵满足所述规则,输出YES;否则输出NO。第二行:两条对角线的和,大的在前面。
输入样例
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
输出样例
NO
45 45
#include<stdio.h>
int main()
{
int i,j,s[9][9],k,flag=0,sum1=0,sum2=0;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
scanf("%d",&s[i][j]);
}
}
for(k=0;k<9;k++)
{
for(i=0;i<9;i++)
{
for(j=i+1;j<9;j++)
{
if(s[k][i]==s[k][j])
{
flag=1;
break;
}
}
}
}
for(k=0;k<9;k++)
{
for(i=0;i<9;i++)
{
for(j=i+1;j<9;j++)
{
if(s[i][k]==s[j][k])
{
flag=1;
break;
}
}
}
}
if(flag==0)
printf("YES\n");
else
printf("NO\n");
for(i=0;i<9;i++)
{
sum1=sum1+s[i][i];
sum2=sum2+s[i][9-i-1];
}
if(sum1>sum2)
printf("%d %d\n",sum1,sum2);
else
printf("%d %d\n",sum2,sum1);
return 0;
}