1. 程式人生 > >C程式-藍橋-九宮格

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;
}