数组在C中给出不同的输出?

时间:2016-07-03 04:09:28

标签: c arrays

嘿伙计们每次我执行我的程序时都会找到十元素数组中的平均值。我的结果略有不同。知道为什么吗?

这是我的代码:

#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

1 个答案:

答案 0 :(得分:7)

在C中声明变量时,请确保它们已初始化为默认值。在堆栈上分配的变量通常不会初始化为其默认值,而是使用垃圾初始化。

因此,在开始求和之前,将变量初始化为

float total = 0.0f;

你每次都应该得到相同的答案。