• 检验并打印幻方矩阵


    题目内容:

    幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。从键盘输入一个5×5的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。

    输入格式: "%d"

    输出格式:

    如果是幻方矩阵,输出提示信息: "It is a magic square! "

    矩阵元素的输出: "%4d"(换行使用" ")

    如果不是幻方矩阵,输出提示信息: "It is not a magic square! "

    输入样例1:

    17_24_1_8_15

    23_5_7_14_16

    4_6_13_20_22

    10_12_19_21_3

    11_18_25_2_9

    (输人样例中“_”代表空格)

    输出样例1:

    It is a magic square!

    **17**24***1**8**15

    **23***5***7**14**16

    ***4***6**13**20**22

    **10**12**19**21***3

    **11**18**25***2***9

    (输出样例中“*”代表空格)

    输入样例2:

    1_0_1_6_1

    3_1_1_1_1

    1_1_1_1_2

    1_1_1_1_1

    9_1_7_1_1

    (输人样例中“_”代表空格)

    输出样例2:

    It is not a magic square!

    注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

    (输人样例中“_”代表空格,输出样例中“*”代表空格)

    时间限制:500ms内存限制:32000kb
     
     1     #include<stdio.h>  
     2       
     3     const int MAX = 5;  
     4     int Fun(int a[][MAX]);  
     5     int main()  
     6     {  
     7         int a[MAX][MAX] ;  
     8         for (int i = 0; i < MAX; i++)  
     9         for (int j = 0; j < MAX; j++)  
    10             scanf("%d ", &a[i][j]);  
    11           
    12       
    13         if (Fun(a) == 1)  
    14         {  
    15             printf("It is a magic square!
    ");  
    16             for (int i = 0; i<MAX; i++)  
    17             {  
    18                 for (int j = 0; j < MAX; j++)  
    19                     printf("%4d", a[i][j]);  
    20                 printf("
    ");  
    21             }  
    22         }  
    23         else  
    24             printf("It is not a magic square!
    ");  
    25       
    26         return 0;  
    27     }  
    28     int Fun(int a[][MAX])  
    29     {  
    30         int s1, s2, sum;  
    31       
    32         sum = 0;  
    33         for (int i = 0; i<MAX; i++)  
    34         for (int j = 0; j<MAX; j++)  
    35             sum += a[i][j];  
    36       
    37         sum /= MAX;  
    38       
    39         for (int i = 0; i<MAX; i++)  
    40         {  
    41             s1 = s2 = 0;  
    42             for (int j = 0; j<MAX; j++)//判断每一行每一列  
    43             {  
    44                 s1 += a[i][j];  
    45                 s2 += a[j][i];  
    46             }  
    47             if (s1 != sum || s2 != sum)  
    48             {  
    49                 return 0;  
    50             }  
    51         }  
    52         s1 = s2 = 0;  
    53         for (int i = 0; i<MAX; i++)//判断每一撇:主对角线  
    54         {  
    55             s1 += a[i][i];  
    56             s2 += a[i][MAX - i - 1];  
    57         }  
    58         if (s1 != sum || s2 != sum)  
    59             return 0;  
    60         return 1;  
    61     }  
    View Code
  • 相关阅读:
    vue a标签下载图片文档显示下载失败
    20200331
    拿奖不排队——项目系统设计与数据库设计
    重修信息管理系统——需求说明书
    拿奖不排队--项目需求分析
    《重修信息系统》项目需求分析模型
    2020软件工程作业--团队02
    拿奖不排队 ——团队展示
    PHP POST请求同时获取结果和header信息
    Peer reports incompatible or unsupported protocol version.
  • 原文地址:https://www.cnblogs.com/entrepre/p/5498251.html
Copyright © 2020-2023  润新知