C语言每日一题—判断是否为魔方矩阵

魔方矩阵
在魔方阵中,所有的行、列和对角线都拥有相同的和。例如:
 17	 24	  1	  8	 15					
 23	  5	  7	 14	 16		4	  9	  2
  4	  6 	 13	 20	 22	    和	3	  5	  7
 10	 12	 19	 21	  3		8	  1 	  6
 11	 18	 25	  2 	  9					

写一个程序读入一个二维整型数组并判断它是否为魔方矩阵。

**输入格式要求:"%d" 
提示信息:"请输入矩阵的阶数(<=10):" "请输入矩阵:\n"  "a[%d][%d]:"
**输出格式要求:"该矩阵不是魔方阵!\n"  "该矩阵为魔方矩阵!"

程序运行示例:
请输入矩阵的阶数(<=10):3
请输入矩阵:
a[0][0]:4
a[0][1]:6
a[0][2]:3
a[1][0]:8
a[1][1]:1
a[1][2]:9
a[2][0]:4
a[2][1]:6
a[2][2]:8
该矩阵不是魔方阵!
#include<stdio.h>

int main()
{
    int a[10][10],n,flag=1;
    printf("请输入矩阵的阶数(<=10):");
    scanf("%d",&n);
    printf("请输入矩阵:\n");
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("a[%d][%d]:",i,j);
            scanf("%d",&a[i][j]);
        }
    }
    int sum=0,s1[10],s2[10],s3=0,s4=0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            sum+=a[i][j];
        }
        s1[i]=sum;//将每一行的和保存到s1数组中
        sum=0;
    }
    for(j=0;j<n;j++)
    {
        for(i=0;i<n;i++)
        {
            sum+=a[i][j];
        }
        s2[j]=sum;将每列的和保存到s2数组中
        sum=0;
    }
    for(i=0;i<n;i++)
    {
        s3+=a[i][i];//主对角线之和
        s4+=a[i][n-i-1];//副对角线之和
    }
    for(i=0;i<n;i++)
    {
        if(s1[0]!=s1[i]) flag=0;//让每一行之和相等
        if(s2[0]!=s2[i]) flag=0;//让每一列之和相等
        if(s1[0]!=s2[0]) flag=0;//让行之和与列之和相等
        if(s1[0]!=s3) flag=0;//让行之和与主对角线之和相等
        if(s1[0]!=s4) flag=0;//让行之和与副对角线之和相等
    }
    if(flag==1) printf("该矩阵为魔方矩阵!");
    else printf("该矩阵不是魔方阵!\n");
    return 0;
}

相关推荐

  1. C语言每日判断是否魔方矩阵

    2024-03-17 06:32:01       18 阅读
  2. 判断是否闰年?【C语言

    2024-03-17 06:32:01       17 阅读
  3. C语言每日—魔幻矩阵

    2024-03-17 06:32:01       16 阅读
  4. C++】每日 54 螺旋矩阵

    2024-03-17 06:32:01       12 阅读
  5. C语言每日判断B是不是A的子串

    2024-03-17 06:32:01       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 06:32:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 06:32:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 06:32:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 06:32:01       18 阅读

热门阅读

  1. C++ 基础组件(1)定时器

    2024-03-17 06:32:01       17 阅读
  2. 【C++】每日一题 228 汇总区间

    2024-03-17 06:32:01       14 阅读
  3. Spring之底层架构核心概念解析

    2024-03-17 06:32:01       18 阅读
  4. c# 修改数据集

    2024-03-17 06:32:01       19 阅读
  5. 合作测试开发日志1

    2024-03-17 06:32:01       15 阅读
  6. go的fasthttp学习

    2024-03-17 06:32:01       23 阅读
  7. uniapp 分包

    2024-03-17 06:32:01       19 阅读
  8. 华为交换机端口类型:Access、Trunk、Hybrid

    2024-03-17 06:32:01       20 阅读
  9. day01.蓝桥杯

    2024-03-17 06:32:01       16 阅读
  10. CSS-DAY2

    2024-03-17 06:32:01       20 阅读