C语言,利用for循环求矩阵

怎么样利用for循环实现矩阵?
求告知,会认真采纳的

img

下面是部分代码

img

下面是C语言程序求解3x3矩阵的主对角线和次对角线元素之和:

#include <stdio.h>

int main() {
    int matrix[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
    int sum_primary = 0;  // 主对角线元素和
    int sum_secondary = 0;  // 次对角线元素和

    for (int i = 0; i < 3; i++) {
        sum_primary += matrix[i][i];  // 累加主对角线元素
        sum_secondary += matrix[i][2-i];  // 累加次对角线元素
    }

    printf("主对角线元素之和: %d\n", sum_primary);
    printf("次对角线元素之和: %d\n", sum_secondary);

    return 0;
}

在这个示例程序中,我们首先创建了一个名为 matrix 的二维整型数组,然后使用两个for循环遍历矩阵的全部元素,并且分别累加主对角线和次对角线的元素值。具体来说,主对角线上的元素行列下标相等,即 matrix[i][i],而次对角线上的元素行列下标之和为 2,即 matrix[i][2-i]。最后使用 printf() 函数输出主对角线和次对角线的元素之和。

需要特别注意的是,由于题目中规定矩阵为固定的3x3的,因此在编写程序时直接使用硬编码的方式初始化矩阵即可,无需从键盘等外部输入获取。如果需要求解任意大小的方阵,则需要先从用户处获取矩阵维度,并且通过循环逐个读取矩阵元素。

参考如下:

int fun(int a[3][3])
{
    int i, j, s;
    s = 0;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            // 主对角线的元素索引 满足 i == j
            // 次对角线的元素索引 满足 i + j == 3 - 1
            if (i == j || i + j == 2)  
            {
                s += a[i][j];
            }
        }
    }
    return s;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^