C数组运行不出自己想要的结果

建议把sum,max ,min; 定义成全局变量;

printf("max=%6.2f\n min=%6.2f\n average=%6.2f\n sum=%6.2f\n",max,min,ave,sum);

中的sum,max ,min只是主函数中定义的变量,且没有赋初值,所以打印出来的是“奇怪”大数。

子函数float average(float array[],int n )

中定义sum,max ,min 是该函数内的局部变量,在函数返回时全部消亡了,只有返回的aver 传递到主函数中 并能正确打印。。

  程序修改一下

你的错误在于求平均值的函数是可返回值的,里面的max,min等并不返回,所以在你的程序里只能返回平均值。

#include

void average(float array[],int n )

{int i ;

float aver, sum=array[0];

float max ,min;

max=min=array[0];

for (i=1;imax)max=array[i];

else if (array[i]  2f\n min=%6。2f\n average=%6。2f\n sum=%6。

  2f\n",max,min,aver,sum);

main

{ float score[10];

int i ;

for (i=0;i

全部

你可能想看:
标签: summax函数
分享给朋友: