从键盘上输入一个M×N的二维数组,求该数组各行的平均值,将结果放到一个一维数组中,并输出,要求M和N的值用#define命令设置,平均值精确到小数点后两位。用c++实现
时间: 2024-04-29 19:26:25 浏览: 129
代码中给定,且输入时需按照行优先的顺序进行。
题目实现:
假设已经从键盘上输入了一个M×N的二维数组,可以按照以下步骤来求各行的平均值并放到一个一维数组中:
1. 初始化一个长度为M的一维数组averages,用于存放各行的平均值。
2. 从头开始遍历二维数组中的元素,每次遍历一整行。
3. 对于当前遍历到的每一行,计算该行所有元素的和sum,并计算该行的平均值average。
4. 将计算出的平均值average存入averages数组中对应的位置中。
5. 遍历完整个二维数组后,输出averages数组中的所有元素。
以下是代码实现:
```
#include <stdio.h>
int main()
{
int M = 3; // 数组的行数
int N = 4; // 数组的列数
int array[M][N]; // 存储输入的数组
int averages[M]; // 存储各行平均值的数组
// 从键盘上输入一个M×N的二维数组
printf("请输入一个%d×%d的二维数组,按行优先的顺序输入:\n", M, N);
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &array[i][j]);
}
}
// 计算各行的平均值
for (int i = 0; i < M; i++) {
int sum = 0;
for (int j = 0; j < N; j++) {
sum += array[i][j];
}
averages[i] = sum / N;
}
// 输出各行的平均值
printf("各行的平均值为:\n");
for (int i = 0; i < M; i++) {
printf("%d ", averages[i]);
}
return 0;
}
```
阅读全文