C语言,这个程序能运行,但为什么出来的结果max和min都是0.000000,小弟学了不久,求高人指点谢谢。

#include<stdio.h>voidmain(){floatavemaxmin(floatarr[],intn);floatmax=0.0,min=0.0;floa... #include<stdio.h>
void main()
{float avemaxmin(float arr[],int n);
float max=0.0,min=0.0;
float s[5],ave;
int j;printf("输入5个元素:");
for(j=0;j<5;j++)
scanf("%d",&s[j]);
ave=avemaxmin(s,5);
printf("max=%f,min=%f,ave=%f\n",max,min,ave);}

float avemaxmin(float arr[],int n)
{int i;float sum=0.0,aver,max=arr[0],min=arr[0];
for(i=0;i<n;i++)
{if(arr[i]>max)max=arr[i];
else if(arr[i]<min)min=arr[i];
sum+=arr[i];}
aver=sum/n;return(aver);}
展开
 我来答
随月怪漫初轩4
2012-03-04 · TA获得超过131个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:104万
展开全部
(1)scanf("%d",&s[j]);
读操作错误,因为s[]是一个浮点数组,而不是整数,所以scanf的第一个参数不应该是%d
正确的应该改为sanf("%f",&s[j]);
(2)因为max和min都是局部变量,所以在主函数main中的max和min与在avemaxmin中的max和min是完全不同的两个变量,正确的改法,在avemaxmin中加入两个实参max和min
修改如下
更多追问追答
追问
刚自己发现改了,不是这个问题
追答
还有一处全局变量和局部变量的问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式