嘿伙计们每次我执行我的程序时都会找到十元素数组中的平均值。我的结果略有不同。知道为什么吗?
这是我的代码:
#include "stdio.h"
int main()
{
float array[10];
for (int n=0; n<10;n++)
{
array[n] = n * 4.76;
printf("array[%i] = %.4f\n",n,array[n] );
}
float total;
for (int n=0; n<10; n++)
{
total = total + array[n];
}
printf("Average: %.4f\n", total/10 );
return 0;
}
并且一些样本结果是:
array[0] = 0.0000
array[1] = 4.7600
array[2] = 9.5200
array[3] = 14.2800
array[4] = 19.0400
array[5] = 23.8000
array[6] = 28.5600
array[7] = 33.3200
array[8] = 38.0800
array[9] = 42.8400
Average: 21.2598
array[0] = 0.0000
array[1] = 4.7600
array[2] = 9.5200
array[3] = 14.2800
array[4] = 19.0400
array[5] = 23.8000
array[6] = 28.5600
array[7] = 33.3200
array[8] = 38.0800
array[9] = 42.8400
Average: 21.2826
答案 0 :(得分:7)
在C中声明变量时,请确保它们已初始化为默认值。在堆栈上分配的变量通常不会初始化为其默认值,而是使用垃圾初始化。
因此,在开始求和之前,将变量初始化为
float total = 0.0f;
你每次都应该得到相同的答案。