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

猜你喜欢

转载自blog.csdn.net/qq_40788199/article/details/84578936