读书人

结果为啥会这样

发布时间: 2013-08-14 14:27:55 作者: rapoo

结果为什么会这样?

#include <stdio.h>


float max,min;
float average(float array[],int n){
int i;float aver,sum=array[0];
max=min=array[0];
for (i=1;i<n;i++){
if(array[i]>max) max=array[i];
if(array[i]<min) min=array[i];
sum=sum+array[i];
}
aver=sum/n;
return(aver);
}

int main()
{

float score[10], ave;
int i;
for(i=0;i<10;i++)
scanf("%lf",&score[i]);
ave=average(score,10);
printf("max==%lf\nminx=%lf\naverage=%lf\n",max,min,average);

}

gcc编译结果:
100 88 99 67.5 76 89 96 82 75 91
max==0.000000
minx=0.000000
average=0.000000

GCC
[解决办法]
float型的应该用scanf("%f",&score[i]);
double型的才是"%lf"

引用:
#include <stdio.h>


float max,min;
float average(float array[],int n){
int i;float aver,sum=array[0];
max=min=array[0];
for (i=1;i<n;i++){
if(array[i]>max) max=array[i];
if(array[i]<min) min=array[i];
sum=sum+array[i];
}
aver=sum/n;
return(aver);
}

int main()
{

float score[10], ave;
int i;
for(i=0;i<10;i++)
scanf("%lf",&score[i]);
ave=average(score,10);
printf("max==%lf\nminx=%lf\naverage=%lf\n",max,min,average);

}

gcc编译结果:
100 88 99 67.5 76 89 96 82 75 91
max==0.000000
minx=0.000000
average=0.000000

读书人网 >C语言

热点推荐