输入20个数,输出他们的平均值,输出与平均值之差的绝对值为最小值的数组代码 用c语言写
时间: 2023-12-03 14:44:55 浏览: 123
从输入的一批正整数中求出最大值、最小值和平均值,输入0结束数据的输入
以下是用C语言实现输入20个数,输出平均值并找到与平均值之差的绝对值最小的数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int num[20];
int sum = 0;
float avg;
int min_diff = 2147483647; // 初始化为一个很大的数
int min_index = 0;
printf("请输入20个数:\n");
// 输入20个数
for (int i = 0; i < 20; i++) {
scanf("%d", &num[i]);
sum += num[i];
}
// 计算平均值
avg = (float) sum / 20;
printf("平均值为:%.2f\n", avg);
// 找到与平均值之差的绝对值最小的数
for (int i = 0; i < 20; i++) {
int diff = abs(num[i] - avg);
if (diff < min_diff) {
min_diff = diff;
min_index = i;
}
}
printf("与平均值之差的绝对值最小的数为:%d\n", num[min_index]);
return 0;
}
```
这段代码首先定义了一个数组 `num` 来存储输入的20个数,同时定义了变量 `sum` 来记录它们的和。然后使用 `for` 循环来输入这20个数,并计算它们的和。接下来计算平均值,然后使用另一个 `for` 循环来找到与平均值之差的绝对值最小的数。在这个循环中,我们使用 `abs()` 函数来计算绝对值,并使用一个变量 `min_diff` 来记录当前找到的最小差值,以及一个变量 `min_index` 来记录最小差值所在的下标。最后输出平均值和与平均值之差的绝对值最小的数即可。
阅读全文