11.9

发布时间 2023-12-17 17:17:39作者: 刘梦磊

5、随机产生20个[45,210]范围内的正整数,实现以下功能:

a)       求最大值、最小值和平均值。

b)      求小于平均值的数据的个数。

提示:产生随机数使用库函数:rand();下面两条语句用于系统随机生成45~210之间的整数:

       srand(time(NULL));       /*初始化随机因子*/

      for(i=0;i<20;i++)  a[i]=rand()%(210-45+1)+45;    /*生成45~210之间的整数*/

因为使用到库函数:time()   srand()、rand(),所以需在程序开头加上两个头文件:

#include <stdlib.h>

#include <time.h>

 

    程序代码:

#include <stdio.h>

 

int main() {

    int data[20];

    int i;

    int sum = 0;

    int max, min;

    int count = 0;

    float average;

 

    printf("请输入20个[45, 210]范围内的正整数:\n");

 

    // 输入20个数,并计算它们的和

    for (i = 0; i < 20; i++) {

        scanf("%d", &data[i]);

        sum += data[i];

    }

 

    // 计算最大值和最小值

    max = data[0];

    min = data[0];

    for (i = 1; i < 20; i++) {

        if (data[i] > max) {

            max = data[i];

        }

        if (data[i] < min) {

            min = data[i];

        }

    }

 

    // 计算平均值

    average = (float)sum / 20;

 

    // 计算小于平均值的数据个数

    for (i = 0; i < 20; i++) {

        if (data[i] < average) {

            count++;

        }

    }

 

    printf("最大值为: %d\n", max);

    printf("最小值为: %d\n", min);

    printf("平均值为: %.2f\n", average);

    printf("小于平均值的数据个数为: %d\n", count);

 

    return 0;

}