输入n个整数,计算它们的平均值,再找出与平均值最接近的那个整数

输入n个整数,计算它们的平均值,再找出与平均值最接近的那个整数

先求出平均值,然后计算每个值与平均值差的绝对值,记住最小的绝对值对应的数位置

代码如下,如有帮助,请帮忙采纳一下,谢谢。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int n,i,index;
    int *p;
    float avg = 0,tmp;
    scanf("%d",&n);
    p = (int*)malloc(sizeof(int)*n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&p[i]);
        avg += p[i];
    }
    avg = avg/n;
    tmp = fabs(p[0] - avg);
    index = 0;
    for(i=1;i<n;i++)
    {
        if(fabs(p[i]-avg) < tmp)
        {
            index = i;
            tmp = fabs(p[i]-avg);
        }
    }

    printf("平均值=%f,最接近平均值的数是:%d",avg,p[index]);
    free(p);p=0;
    return 0;
}