本题要求编写程序,求一个给定的m×n矩阵各行元素之和。 输入格式: 输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间 以空格分隔。 输出格式: 每行输出对应矩阵行元素之和。
时间: 2024-12-25 19:37:20 浏览: 12
为了实现题目所描述的功能,你可以按照以下步骤编写程序:
1. **读取矩阵尺寸**:
```c
scanf("%d %d", &m, &n);
```
确保输入的`m`和`n`在合理的范围内(1到6)。
2. **定义并初始化矩阵**:
```c
int mat[m][n];
```
3. **遍历矩阵,计算行元素之和**:
```c
for (int i = 0; i < m; i++) {
int sum = 0;
for (int j = 0; j < n; j++) {
scanf("%d", &mat[i][j]);
sum += mat[i][j]; // 记录每一行的总和
}
}
```
4. **输出行元素之和**:
```c
for (int i = 0; i < m; i++) {
printf("%d\n", sum); // 每次循环结束后输出当前行的和
}
```
你的解答中使用了一个额外的一维数组`b`来存储行和,这并不是必需的,因为可以直接在内层循环中累加。以下是简化后的代码:
```c
int main() {
int m, n, i = 0;
scanf("%d %d", &m, &n);
int mat[m][n];
for (i = 0; i < m; i++) {
int sum = 0;
for (int j = 0; j < n; j++) {
scanf("%d", &mat[i][j]);
sum += mat[i][j];
}
printf("%d\n", sum);
}
return 0;
}
```
总结:
该程序通过嵌套循环遍历矩阵,对每一行的元素求和,并将结果输出。注意,这里的`m`和`n`应由用户输入,并确保它们符合题目给出的限制条件。
阅读全文