全局变量运行函数后又特么清零了,伤不起,帮着看看
#include<stdio.h>float min,max;
float test(float a[],int n)
{
int i;
float avg,sum=0.0,min=a,max=a;
for(i=0;i<n;i++)
{
sum=sum+a;
if(a<min)
{
min=a;
}
else if(a>max)
{
max=a;
}
}
avg=sum/n;
return(avg);
}
void main()
{
float avg;
float mark={78.0,86.5,86.0,84.0,45.5,91.0,79.5,88,92,80.5};
avg=test(mark,10);
printf("average=%f,max=%f,min=%f\n",avg,max,min);
}
甲鱼上课的一道题求均值最大最小的,·debug以后发现运行完函数有了值之后最后进入main输出结果时候又min和max又变成0了。 最后min和max结果都是0,均值正常 本帖最后由 朝仓太阳 于 2014-10-2 14:02 编辑
这是test函数运行完时候,min,max,和 avg的值
然后...............................min,max,avg都没了..........由于不会看汇编还,请大神们帮忙啊
最后.............:huffy:
这个就可以的...............
#include<stdio.h>
float Max,Min;
void main()
{
float average(float a[], int n);
float av,score={52.0,58.5,92,73,54.5,94.5,88,76,90.5,88};
av=average(score,10);
printf("max=%f\nmin=%f\naverage=%f\n",Max,Min,av);
}
float average(float a[],int n)
{
int i;
float aver, sum=0;
Max=Min=a;
for(i=0;i<n;i++)
{
if(a>Max) Max=a;
else if(a<Min) Min=a;
sum=sum+a;
}
aver=sum/n;
return(aver);
}
@牡丹花下死做鬼 @Answer.zhang 我操挽尊的都没有 float avg,sum=0.0,min=a,max=a;
上面的大哥说了 这个就相当于重新定义了
float aver, sum=0;
Max=Min=a;
这样就好了 max=和min=去掉就好,楼上还真说对了,重复定义了。 zhoumx 发表于 2014-10-5 16:55
float avg,sum=0.0,min=a,max=a;
上面的大哥说了 这个就相当于重新定义了
float aver, sum=0;
谢谢楼主细心回答!
页:
[1]