我已经想出如何在数组中显示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);
答案 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
,因为avg
是float
。
答案 2 :(得分:0)
您收到0是因为您没有将value
分配给数组元素num[i]
。
在你循环中,你也应该
num[i] = value;
total = total + num[i];
您需要将avg
计算移出for循环。