1 #include<stdio.h> 2 int main(){ 3 /*定义二维数组,并赋初值为0*/ 4 int a[3][3]; 5 /*录入A[m][s]*/ 6 for(int i=0;i<3;i++){ 7 for(int j=0;j<3;j++){ 8 scanf("%d",&a[i][j]); 9 } 10 } 11 // /*打印A[m][s]*/ 12 // for(int i=0;i<3;i++){ 13 // for(int j=0;j<3;j++){ 14 // printf("%d ",a[i][j]); 15 // } 16 // printf("\n"); 17 // } 18 int row1=0,row2=0,row3=0,pol1=0,pol2=0,pol3=0,Xie1=0,Xie2=0; 19 row1 = a[0][0]+a[0][1]+a[0][2]; 20 row2 = a[1][0]+a[1][1]+a[1][2]; 21 row3 = a[2][0]+a[2][1]+a[2][2]; 22 23 pol1 = a[0][0]+a[1][0]+a[2][0]; 24 pol2 = a[0][1]+a[1][1]+a[2][1]; 25 pol3 = a[0][2]+a[1][2]+a[2][2]; 26 27 Xie1 = a[0][0]+a[1][1]+a[2][2]; 28 Xie2 = a[0][2]+a[1][1]+a[2][0]; 29 // printf("%d, %d, %d, %d, %d, %d, %d, %d\n",row1,row2,row3,pol1,pol2,pol3,Xie1,Xie2); 30 for(int i=0;i<3;i++){ 31 if(row1 == row2 == row3 == pol1 == pol2 == pol3 == Xie1 == Xie2){ 32 printf("1"); 33 break; 34 }else{ 35 printf("0"); 36 break; 37 } 38 } 39 }
方案二:
1 #include<stdio.h> 2 int main(){ 3 int sum=0,k=0,f=1; 4 int s[100]={0}; 5 /*定义二维数组,并赋初值为0*/ 6 int a[3][3]; 7 int i,j; 8 /*录入A[m][s]*/ 9 for(i=0;i<3;i++){ 10 sum=0;//每输入一行时sum置为0 11 for(j=0;j<3;j++){ 12 scanf("%d",&a[i][j]); 13 sum = sum+a[i][j]; 14 } 15 s[k++] = sum;//每行的和 16 } 17 18 for(sum=0,i=0;i<3;i++){ 19 sum=0; 20 for(j=0;j<3;j++){ 21 sum+=a[j][i]; 22 } 23 s[k++] = sum;//每列的和 24 } 25 26 for(sum=0,i=0;i<3;i++) 27 sum+=a[i][i]; 28 s[k++] = sum;//主对角线元素和 29 s[k++] = a[0][2]+a[1][1]+a[2][0];//副对角线元素和 30 for(i=0;i<k-1;i++) 31 for(j=i+1;j<k;j++){ 32 if(s[i] != s[j]){ 33 f=0; 34 } 35 } 36 s[k++] = sum;//每列的和 37 if(f) 38 printf("1"); 39 else 40 printf("0"); 41 return 0; 42 }
原文:http://www.cnblogs.com/panweiwei/p/6284108.html