读书人

初学者c语言有关问题

发布时间: 2012-03-17 19:06:28 作者: rapoo

菜鸟,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]

读书人网 >C语言

热点推荐