C语言编写程序矩阵练习小案例

题目描述

编程实现读入5行4列矩阵中的前四行三列整数,然后将各行之和,各列之和求出,并对应填入表中最后一列,最后一行

源代码

下面是一个用C语言实现读入矩阵并计算行列之和的示例代码:

#include <stdio.h>

#define ROWS 5
#define COLS 4

void calculateSum(int matrix[ROWS][COLS]) {
    int rowSum[ROWS] = {0};
    int colSum[COLS] = {0};
  
    // 计算各行的和
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            rowSum[i] += matrix[i][j];
        }
    }

    // 计算各列的和
    for (int j = 0; j < COLS; j++) {
        for (int i = 0; i < ROWS; i++) {
            colSum[j] += matrix[i][j];
        }
    }

    // 填入最后一列
    for (int i = 0; i < ROWS; i++) {
        matrix[i][COLS] = rowSum[i];
    }

    // 填入最后一行
    for (int j = 0; j < COLS; j++) {
        matrix[ROWS][j] = colSum[j];
    }
}

int main() {
    int matrix[ROWS][COLS + 1]; // +1 是为了给最后一列和最后一行留位置

    printf("请输入5行4列的矩阵:\n");
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }

    calculateSum(matrix);

    // 输出计算后的矩阵
    printf("计算后的矩阵:\n");
    for (int i = 0; i <= ROWS; i++) {
        for (int j = 0; j <= COLS; j++) {
            printf("%d\t", matrix[i][j]);
        }
        printf("\n");
    }

    return 0;
}

在这个示例中,我们首先定义了一个calculateSum函数,用于计算矩阵各行之和和各列之和,并将结果填入矩阵的最后一列和最后一行。然后,在main函数中,我们声明了一个matrix矩阵,并通过用户输入初始化矩阵。接下来,我们调用calculateSum函数对矩阵进行计算,并输出计算后的矩阵。

注意,这里我们将矩阵的列数增加了1,以给最后一列和最后一行留出位置来存储行列之和。在输出计算后的矩阵时,我们使用了<=进行遍历,以包含最后一行和最后一列。

请注意,这个示例假设输入的矩阵元素都是整数,并且没有考虑输入的合法性验证。在实际应用中,可能需要添加适当的输入验证或错误处理机制。

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享