注册 登录
编程论坛 C语言论坛

随机产生20 个1000以内的整数并显示,找出与该二十个整数的均值最接近的数(),显示结果

hdc010312sy 发布于 2018-03-20 18:54, 891 次点击
有没有大神帮忙的 刚开始学习c语言 不怎么会
1 回复
#2
word1232018-03-20 19:14
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
    int arr[20],i;
    double c;
    int cur;
    int sum=0;
    double avg;
    srand((unsigned int)time(NULL));   //设置种子,不然每次运行结果一样
    for(i=0;i<20;i++){
        arr[i] = rand()%1000;   //生成0-999的整数
        printf("%d\n",arr[i]);
        sum+=arr[i];
    }
    avg = 1.0*sum/20;

    c = abs(arr[0] - avg);   //与均值的差值
    cur = arr[0];

    for(i=1;i<20;i++){
        if(abs(arr[i] - avg)<c){   //遍历数组一遍找最接近的
            c = abs(arr[i] - avg);
            cur = arr[i];
        }
    }
    printf("\n\navg=%lf , data=%d\n",avg,cur);

    return 0;
}
1