时间68 2021-12-08 18:46 采纳率: 100%
浏览 39
已结题

大一的C语言题不会做求解

n阶矩阵(所有数据为整数),求对角线元素的和及四周元素的和。(n由键盘输入)

  • 写回答

2条回答 默认 最新

  • 加拉萨假期 2021-12-08 19:57
    关注

    要下班了,我贴出来吧

    
    #include "stdio.h"
    
    int main()
    {
        int n;
    
        //从命令行读取你的矩阵规格到变量n
        scanf("%d", &n);
        printf("You set n = %d\n", n);
    
        //定义n x n矩阵
        int matrix[n][n];
        //不知道你的矩阵的要求,我就随便用一个连续数列来填矩阵了
        for (int row = 0; row < n; row++)
        {
            for (int col = 0; col < n; col++)
            {
                matrix[row][col] = row * n + col;
            }
        }
    
        //打印矩阵出来看
        printf("... and the matrix is:\n");
        for (int row = 0; row < n; row++)
        {
            for (int col = 0; col < n; col++)
            {
                printf("%d  ", matrix[row][col]);
                if (col == n - 1)
                {
                    printf("\n");
                }
            }
        }
    
        //四周元素和
        int sumBoarder = 0;
        //对角和
        int sumDiagonal = 0;
    
        //遍历每个矩阵的元素,并判断元素是否满足四周元素和或者对角和要求
        //如果满足,则把它累加到对应的变量上
        for (int row = 0; row < n; row++)
        {
            for (int col = 0; col < n; col++)
            {
                //这个判断是不是四周元素的方法就是看行是不是第一行或者最后一行,
                //然后列是不是第一列或者最后一列
                if (row == 0 || row == n - 1 || col == 0 || col == n - 1)
                {
                    sumBoarder += matrix[row][col];
                }
    
                //这个判断是判断是不是对角元素,判断方式是行列坐标索引相等
                if (row == col)
                {
                    sumDiagonal += matrix[row][col];
                }
            }
        }
    
        //打印结果
        printf("boarders=%d, diagonal= %d\n", sumBoarder, sumDiagonal);
    }
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料