c语言求3个数最大值,请问我代码问题出在哪里?跪谢~

来源:百度知道 编辑:UC知道 时间:2024/06/21 01:45:10
#include <stdio.h>
void main()
{
float max(float d,float e,float f);
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
t=max(a,b,c);
printf("max=%5.2f\n",t);
}
float max(float d,float e,float f)
{
float g;
if(d>e)
{
if(d>f)
g=d;
else g=f;
return(g);
}
if(e>f) g=e;

return(g);
}

用VC++运行,输入1 2 3比较时,就有问题了~~但输入某些数比较又输出正确值喔~~~郁闷了很久~~~~谢谢解决疑惑~

if(e>f) g=e;
下面加一句:
else g=f;
就行了

#include <stdio.h>
void main()
{
float max(float d,float e,float f);
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
t=max(a,b,c);
printf("max=%5.2f\n",t);
}
float max(float d,float e,float f)
{
float g;
if(d>e)
{
if(d>f)
g=d;
else if(f>e)
g=f;
else //此时还有e>f的情况没有列出来
g=e;
return(g);
}
else if(e>f) g=e; //此时还有e<f的情况没有列出来
else
g=f;

return(g);
}

注明:条件判断不够完整

if(e>f) g=e;
但ELSE时G未付值