我需要编写一个C程序到:
1.用一个介于0到100之间的随机数填充20个基本数组(标记)
2.将数字8打印到一行。
3.打印出最大值和最小值以及数字的平均值。

我写了下面的程序,除了分钟,其他一切都还好,我不知道我该怎么做,任何帮助或技巧都将不胜感激。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
    int i = 0;
    int sum = 0;
    int avg = 0;
    int min = 0;
    int max = 0;
    int x = 0;
    int random = 0;
    int num[20] = { 0 };
    srand(time(NULL));

    for (x = 0; x<20; x++)
    {
        random = rand() % 100 + 1;
        num[x] = random;

        if (num[x]>max)
        {
            max = num[x];
        }
        if (x % 8 == 0)
        {
            printf("\n");
        }

        sum += random;
        printf("%d\t", num[x]);
    }

    avg = sum / 20;
    printf("\n\nthis is Max number: %d", max);
    printf("\nThis is average number:%d", avg);
    printf("\nThis is min number:", min);

    return 0;
}

最佳答案

您的代码中有一个条件可以确定最大值。寻找最小值也需要相同的方法,例如:

if (num[x]<min)
{
    min = num[x];
}


但这永远不会成立,因为min为0,而num[x]始终大于0。因此,通过更改将min设置为100

int min = 0;




int min = 100;


但是,您的代码仍无法按预期运行。这是因为您忘记在最后一个%d中添加格式说明符(printf)。所以改变

printf("\nThis is min number:", min);




printf("\nThis is min number:%d", min);


最后,您的代码将起作用!

关于c - 随机数的最大值和最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27298677/

10-13 03:52