[求助]为什么会出现误差???
是这样的,输入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试试吧
----------------解决方案--------------------------------------------------------