浮动结果不正确

时间:2015-03-29 15:32:56

标签: c arrays floating-point initialization average

我有一个浮点数组中的数字列表(见下文),我必须得到总和,然后计算平均值。使用此代码例如:

for(i=0; i<M; i++)
    sI_Ssum += sI_S[i];

并打印结果:

fprintf(fswaps, "Avg: %.1f", sI_Ssum/M);

我得到了这个奇怪的结果,这显然是错误的,但为什么会发生这种情况呢?

75157066131085846000000000000000.0

所有变量都是浮动的。

数组元素:

224230368  
224013664  
223660880  
226627536  
225013760  
224190272  
223501872  
225202688  
224685264  
225468864  
226371200  
224903232  
226204800  
224598128  
225268816  
225997904  
225491536  
224665840  
226138784  
224613424  

1 个答案:

答案 0 :(得分:3)

我认为您忘记初始化sI_Ssum

sI_Ssum设为0 -

 sI_Ssum = 0;