c语言 矩阵各列之和 cpp
时间: 2024-12-21 22:30:56 浏览: 10
在C语言中,计算矩阵的各列之和可以利用循环遍历矩阵每一列并累加元素。这里是一个简单的示例,假设有一个二维数组`matrix`表示矩阵:
```c
#include <stdio.h>
#define ROWS matrix.GetLength(0)
#define COLS matrix.GetLength(1)
int sum_of_columns(int matrix[ROWS][COLS]) {
int column_sums[COLS] = {0}; // 初始化列和数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
column_sums[j] += matrix[i][j]; // 每次循环将当前行对应的列值累加到对应索引
}
}
// 输出各列的和
for (int k = 0; k < COLS; k++) {
printf("Column %d sum: %d\n", k+1, column_sums[k]);
}
return column_sums;
}
// 示例:一个3x3矩阵
int main() {
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int result[] = sum_of_columns(matrix);
return 0;
}
```
在C++中,你可以使用相似的方式来实现这个功能,只需要注意语法上的差异。上述C语言代码可以直接转换成C++,只需将`#define`替换为常量声明,其他部分基本不变。
```cpp
#include <iostream>
const int ROWS = sizeof(matrix) / sizeof(matrix[0]);
const int COLS = sizeof(matrix[0]) / sizeof(matrix[0][0]);
std::vector<int> sumOfColumns(int matrix[ROWS][COLS]) {
std::vector<int> columnSums(COLS, 0); // 使用向量代替数组
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
columnSums[j] += matrix[i][j];
}
}
// 输出各列的和
for (int k = 0; k < COLS; ++k) {
std::cout << "Column " << k + 1 << " sum: " << columnSums[k] << "\n";
}
return columnSums;
}
int main() {
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
std::vector<int> result = sumOfColumns(matrix);
return 0;
}
```
阅读全文