c语言使用数组输入一个正整数n在输入n个整数找到直接最接近平均数的数
时间: 2024-06-10 21:04:18 浏览: 111
好的,我了解了您的问题。下面是使用C语言实现这个功能的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, sum = 0, avg, min_diff = 2147483647, ans = -1;
scanf("%d", &n);
int *a = (int*)malloc(n * sizeof(int));
for(int i = 0; i < n; i++){
scanf("%d", &a[i]);
sum += a[i];
}
avg = sum / n;
for(int i = 0; i < n; i++){
int diff = abs(a[i] - avg);
if(diff < min_diff){
min_diff = diff;
ans = a[i];
}
}
printf("%d", ans);
free(a);
return 0;
}
```
代码解释:
1. 先输入正整数n和n个整数,使用动态分配内存的方式存储n个整数,避免数组长度不够导致的越界错误。
2. 计算n个整数的平均数avg。
3. 在循环遍历n个整数时,计算当前整数与平均数之间的差的绝对值,找到差值最小的那个整数,保存到ans变量中。
4. 最后输出ans即可。
希望能够帮助您解决问题。
阅读全文