C程式-藍橋-九宮格
問題描述
九宮格。輸入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;
}