求数组C编程中50个随机数的平均值

时间:2014-10-17 02:20:39

标签: c arrays random numbers average

我已经想出如何在数组中显示50个随机数。数字在1到500之间。我在查找当前代码中的平均值时遇到问题,因为它只显示为零。有人能帮助我吗?

int num[SIZE] = {0};
int count = 0;
int i;
int total = 0;
int value;
float avg = 0;
srand((unsigned)time(NULL)); //SEEDS RAND FUNCTION

printf("Display the numbers in the range of [1, 500]. \n"); //displays random numbers

    for(i = 0; i < 50; i++) 
    {
        value = rand()%500 + 1;
        printf("%i\n", value); 
        total = total + num[i];
        avg = (float)total/50;
    }

//Display Output
printf("The average of all the numbers is %i \n", avg);

3 个答案:

答案 0 :(得分:1)

1)avg = (float)total/50;应该超出for循环。

2)total = total + num[i];应为total = total + value;

3)您的printf声明应为:

printf("The average of all the numbers is %f \n", avg);

4)你也没有使用num[]数组。

答案 1 :(得分:1)

total = total + num[i];

此处num[i]并且整个数组包含0.因此total将保持为0.所以,您需要

num[i]=value;

在计算total之前。此外,应在循环后计算平均值。不要忘记在%f使用%i代替printf,因为avgfloat

答案 2 :(得分:0)

您收到0是因为您没有将value分配给数组元素num[i]。 在你循环中,你也应该

num[i] = value;
total = total + num[i];

您需要将avg计算移出for循环。