用c语言解决:输入m个数,求其最大数、最小数和平均值。
时间: 2023-11-22 12:55:27 浏览: 130
从输入的一批正整数中求出最大值、最小值和平均值,输入0结束数据的输入
下面是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int m, i, x;
int max = -2147483647, min = 2147483647, sum = 0;
float avg;
printf("请输入m个数:\n");
scanf("%d", &m);
for (i = 0; i < m; i++) {
scanf("%d", &x);
if (x > max) {
max = x;
}
if (x < min) {
min = x;
}
sum += x;
}
avg = (float) sum / m;
printf("最大数为:%d\n", max);
printf("最小数为:%d\n", min);
printf("平均值为:%f\n", avg);
return 0;
}
```
程序中定义了变量 `m`,用于存储输入的数的个数;变量 `i`,用于循环计数;变量 `x`,用于存储每次输入的数;变量 `max`,用于存储最大数;变量 `min`,用于存储最小数;变量 `sum`,用于存储所有数的和;变量 `avg`,用于存储平均值。
首先,程序通过 `scanf` 从键盘输入数的个数 `m`。然后,程序通过 `for` 循环,循环 `m` 次,每次从键盘输入一个数 `x`,并进行比较更新最大数 `max` 和最小数 `min`,同时累加求和 `sum`。
循环结束后,程序通过 `avg = (float) sum / m` 计算平均值。最后,程序通过 `printf` 输出最大数、最小数和平均值。
需要注意的是,为了避免整型除法产生的精度问题,计算平均值时需要将变量 `sum` 显式转换为浮点型。
阅读全文