结果为什么会这样?
#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"