复制
收藏
提问
简洁
从键盘上输入一个M×N的二维数组,求该数组各列的平均值,将结果放到一个一维数组中,并输出。
4月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
根据您提供的参考资料,下面是一个C语言程序,用于从键盘输入一个M×N的二维数组,计算并输出该数组各列的平均值,并将结果存储到一个一维数组中。
#include <stdio.h>
int main() {
int m, n;
printf("请输入数组的行数和列数:");
scanf("%d %d", &m, &n);
int a[m][n]; // 定义一个M×N的二维数组
int sum[n] = {0}; // 定义一个一维数组,用于存储每列的和
int count[n] = {0}; // 定义一个一维数组,用于存储每列的元素个数
printf("请输入二维数组的元素:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
sum[j] += a[i][j]; // 累加每列的元素
count[j]++; // 计数每列的元素个数
}
}
// 计算每列的平均值
for (int j = 0; j < n; j++) {
double average = (double)sum[j] / count[j];
printf("第 %d 列的平均值是:%.2f\n", j + 1, average);
}
return 0;
}
这段代码首先通过 scanf
函数读取用户输入的二维数组的行数 m
和列数 n
。然后,使用可变长数组(VLA)定义了一个二维数组 a[m][n]
来存储用户输入的元素。同时,定义了两个一维数组 sum
和 count
分别用于存储每列元素的和以及每列的元素个数。
在输入完二维数组的元素后,程序通过嵌套循环累加每列的元素值到 sum
数组,并同时更新 count
数组记录每列的元素个数。最后,程序计算每列的平均值,并将结果输出到控制台。
请注意,可变长数组(VLA)是C99标准的一部分,如果您使用的编译器不支持C99或更新的标准,您可能需要使用指针或其他方法来创建动态大小的数组。13
你觉得结果怎么样?