菜鸟,c语言问题
书上的一个例子,要求输入5个数,输出平均数、最大值、最小值
我输入的是1 2 3 4 5
平均值应该是3吧?可是为什么输出的结果是3.2呢?
- C/C++ code
# include <stdio.h>float max=0,min=0;int main(){ float aver(float a[],int n); int i; float a[5]; printf("please 5 number: "); for(i=0;i<5;i++) scanf("%f",&a[i]); printf("the number average is: %6.2f\n",aver(a,5)); printf("the number max is: %6.2f\n",max); printf("the number min is: %6.2f\n",min); return 0;}float aver(float a[],int n){ max=min=a[0]; int z; float num,aver; num=a[0]; for(z=0;z<n;z++) { if(max<a[z]) max=a[z]; else if(min>a[z]) min=a[z]; num=num+a[z]; } aver=num/n; return aver;}[解决办法]
float aver(float a[],int n)
{
max=min=a[0];
int z;
float num,aver;
num=a[0];
for(z=0;z<n;z++)
{
if(max<a[z]) max=a[z];
else if(min>a[z]) min=a[z];
num=num+a[z];
}
aver=num/n;
return aver;
}
num的初始值为a[0]
求和的时候多加了一个a[0]