#include “Stdio.h”
#include “Conio.h”
float max,min,sum; /*利用全局变量来带回值*/
float average(float score[],int n)
{int i;
float sum=score[0];
max=min=score[0];
score[0];
for(i=1;i<n;i++)
{sum=sum+score[i];
if(max<score[i])max=score[i];
if(min>score[i])min=score[i];
}
return sum; /*只能带回一个值*/
}
int main(void)
{float a[10];
int i;
printf(“please input numbers:\n”);
for(i=0;i<10;i++)
scanf(“%f”,&a[i]);
sum=average(a,10); /*此处只能用a,因为用数组名作为函数实参时,不是把数组元素值传递给形参,而是把实参数组的起始地址传递给形参*/
printf(“%5.1f\n%3.2f\n%2.4f”,sum,max,min);
getch();
return 0;
}
输入10个数字,输出和,最大,最小值。
在红色字体使用的是全局变量来带会最大最小值,我想请问下,我在使用全局变量的时候,不管是不是给max,min赋值,或者赋值多少,
例如
float max,min,sum;
float max=0,min=0,sum;
float max=445,min=45,sum;
最后输出的值都是按照数组中的实际大小来输出,请问为什么不管max,min,怎么定义都不影响结果呢?
>> 本文固定链接: http://www.vcgood.com/archives/2827
我觉得应该是被后面的值覆盖了
因为你在average()函数中对全局变量max,min进行了复制,新的值把旧的值覆盖了