在数组x的10个数中求平均值v,找出与v相差最小的数组元素
时间: 2024-03-14 16:42:52 浏览: 289
好的,以下是 C 语言的实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int x[10], sum = 0, avg, min_diff = 2147483647, min_index;
// 2147483647 为 int 类型的最大值
printf("请输入10个整数:");
for (int i = 0; i < 10; i++) {
scanf("%d", &x[i]);
sum += x[i];
}
avg = sum / 10;
for (int i = 0; i < 10; i++) {
int diff = abs(x[i] - avg);
if (diff < min_diff) {
min_diff = diff;
min_index = i;
}
}
printf("平均值为:%d,与平均值相差最小的数组元素为:%d\n", avg, x[min_index]);
return 0;
}
```
这个程序首先定义了一个整型数组 `x`,并且定义了变量 `sum` 用来记录数组元素之和,变量 `avg` 用来记录平均值,变量 `min_diff` 用来记录与平均值相差最小的差值,变量 `min_index` 用来记录该差值对应的数组元素下标。
然后通过 `scanf` 函数依次读入10个整数,并累加它们的和。计算平均值 `avg`。
接下来通过一个循环遍历数组,计算每个元素与平均值的差值,并使用 `abs` 函数取绝对值。如果当前差值比之前记录的最小差值还要小,就更新 `min_diff` 和 `min_index`。
最后通过 `printf` 函数输出平均值和与平均值相差最小的数组元素。
阅读全文