当前位置: 代码迷 >> C语言 >> [求助]为什么会出现误差???
  详细解决方案

[求助]为什么会出现误差???

热度:212   发布时间:2005-03-27 14:20:00.0
[求助]为什么会出现误差???
是这样的,输入10个数,求前5个数和10个数的平均数。
float average(float a[],int n)
{
float ave,sum=0;int i;
    for(i=0;i<n;i++)
        sum=sum+a[i];
ave=sum/n;
return ave;
}
      
void main()
{
    float scores[10],ave_5,ave_10;int i;
for(i=0;i<10;i++)
    scanf("%f",&scores[i]);
    ave_5=average(scores,5);
    ave_10=average(scores,10);
    printf("ave_5=%f\nave_10=%f\n",ave_5,ave_10);
}
输入的10个数是:67.5  89.5  99  69.5  77  89.5  76.5  54  60  99.5
前5个数的平均数ave_5=80.5是对的
而10个数的平均数ave_10=78.19997与实际的不同78.20000???

然后我又把程序中ave_5删掉只计算ave_10得到的答案又是正确的 即78.2。
搜索更多相关的解决方案: 误差  

----------------解决方案--------------------------------------------------------
我在tc下也运行了,可是有没ave_5时ave_10得到的答案总是78.199997
----------------解决方案--------------------------------------------------------
%5f试试吧
----------------解决方案--------------------------------------------------------
  相关解决方案