用C语言给定m行n列的整型二维数组构成的矩阵(m<=20,n=10),计算该矩阵中各行元素之和,并输出各行之和的最大值与最小值之差. [输入格式]第一行包含2个整数,为m和n的值;接下来有m行,每行包含n个整数。 [输出格式]一个整数,表示该矩阵中各行元素之和的最大值与最小值之差。
时间: 2024-02-25 21:57:13 浏览: 171
C语言求矩阵各行元素之和.docx
以下是用 C 语言编写的程序,可以解决您提出的问题:
```c
#include <stdio.h>
int main() {
int m, n;
scanf("%d%d", &m, &n);
int arr[m][n]; // 定义二维数组
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
int rowSum[m]; // 存储各行元素之和
for (int i = 0; i < m; i++) {
rowSum[i] = 0;
for (int j = 0; j < n; j++) {
rowSum[i] += arr[i][j];
}
}
int maxSum = rowSum[0], minSum = rowSum[0]; // 分别记录最大值和最小值
for (int i = 1; i < m; i++) {
if (rowSum[i] > maxSum) {
maxSum = rowSum[i];
}
if (rowSum[i] < minSum) {
minSum = rowSum[i];
}
}
printf("%d", maxSum - minSum);
return 0;
}
```
程序的思路如下:
1. 首先读入矩阵的行数 m 和列数 n,并定义一个 m 行 n 列的二维数组 arr。
2. 然后遍历二维数组 arr,依次读入每个元素的值。
3. 接着定义一个长度为 m 的一维数组 rowSum,用于存储各行元素之和。遍历二维数组 arr,计算每行元素之和,并存储到 rowSum 中。
4. 最后遍历一维数组 rowSum,找出其中的最大值和最小值,计算它们之差即可。
希望这个程序能够帮到您,如果您有任何疑问,可以随时向我提问。
阅读全文