调用一个函数求最大者最小值和平均值

如题,不知道为什么最大者最小值输出不了,求大佬解惑,代码如下
#include <stdio.h>
float max=0,min=0;
float array(float b[10]);
int main()
{ float a[10];
float ave;
int i;
for(i=0;i<10;i++)
{scanf("%f",&a[i]);}
ave=array(a);
printf("max=%.2f\n",max);
printf("min=%.2f\n",min);
printf("average=%.2f\n",ave);
return 0;
}

float array(float b[10])
{ float max=b[0],average,min=b[0],sum=b[0];
int i;
for(i=1;i<10;i++)
{ if(b[i]>max) {max=b[i];}
else if(b[i]<min) {min=b[i];}
sum+=b[i];
}
average=sum/10.0;

return average;
}


#include <stdio.h>
float max=0,min=0;
float array(float b[10]);
int main()
{ float a[10];
float ave;
int i;
for(i=0;i<10;i++)
{scanf("%f",&a[i]);}
ave=array(a);
printf("max=%.2f\n",max);
printf("min=%.2f\n",min);
printf("average=%.2f\n",ave);
return 0;
}

float array(float b[10])
{ float average,sum=b[0];
// 写在上面的语句里的话相当于新定义max,min,新定义的max,min作用域只在这个函数里
max=b[0];
min=b[0];
int i;
for(i=1;i<10;i++)
{ if(b[i]>max) {max=b[i];}
else if(b[i]<min) {min=b[i];}
sum+=b[i];
}
average=sum/10.0;

return average;
}