C语言数组中怎么固定列数组,行数组相加?

如题所述

如果想要固定列数组,行数组相加,可以按照行列转换的思路进行操作,即将原矩阵进行转置操作。具体实现方法如下:

1定义一个二维数组存储原始矩阵。

2定义一个新的二维数组作为转置后的矩阵,该矩阵的行数和原矩阵的列数相等,列数和原矩阵的行数相等。

3遍历原矩阵中每个元素,将其放到对应位置上,即将第 i 行第 j 列的元素存储到第 j 行第 i 列。

4对转置后的矩阵按照行相加的方式进行求和,得到每一行的和。

5将每一行的和存储在一个一维数组中。
这是实例代码
——————————————
#include <stdio.h>
#define ROW 3 // 定义行数
#define COL 4 // 定义列数
int main() {
int matrix[ROW][COL] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int transposed_matrix[COL][ROW];
int sum_of_rows[COL] = {0};

// 转置矩阵
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
transposed_matrix[j][i] = matrix[i][j];
}
}

// 求和并存储
for (int i = 0; i < COL; i++) {
for (int j = 0; j < ROW; j++) {
sum_of_rows[i] += transposed_matrix[i][j];
}
printf("第 %d 行的和为:%d\n", i, sum_of_rows[i]);
}

return 0;
}
——————————————————————————————
在上述代码中,将原矩阵 matrix 转置后得到转置矩阵 transposed_matrix,对其进行行求和得到每一行的和,并存储在数组 sum_of_rows 中
温馨提示:答案为网友推荐,仅供参考
相似回答