问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。
思路:本题最直接的想法就是把所有结果算出来,共八个,我用了两个for循环,解决了求解其中六个结果。
代码:
#include<stdio.h>
#include
#include<string.h>
using namespace std;
int main(){
int sum=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7,sum8;
int a[20][20];
memset(a,0,sizeof(a));
int i,j,k;
for(i=1;i<=3;i++){
for(j=1;j<=3;j++)
cin>>a[i][j];
}
for(i=1;i<4;i++){
for(j=1;j<4;j++){
if(i==1)
sum1+=a[i][j];
else if(i==2)
sum2+=a[i][j];
else
sum3+=a[i][j];
}
}
for(i=1;i<4;i++){
for(j=1;j<4;j++)
{if(i==1)
sum4+=a[j][i];
else if(i==2)
sum5+=a[j][i];
else
sum6+=a[j][i];
}
}
sum7=a[1][1]+a[2][2]+a[3][3];
sum8=a[1][3]+a[2][2]+a[3][1];
if(sum1==sum2&&sum2==sum3&&sum3==sum4&&sum4==sum5&sum5==sum6&&sum6==sum7&&sum7==sum8)
cout<<1;
else
cout<<0;
return 0;
}