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

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

要下班了,我贴出来吧


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

```

你说说你的思路,然后再给你贴代码,不然没意义。