请问这求最大值的函数有什么错?
请问这求最大值的函数有什么错?
楼主cisbest()2003-12-30 21:25:34 在 C/C++ / C语言 提问 floot maxx(float x.float y, floatz)
{
float max=x;
if (z>y)
{
if (z>x)
{
max=z;
}
}
else if (y>x)
{
max=y;
}
return (max);
} 问题点数:0、回复次数:15Top
1 楼skywarship(很菜的小李)回复于 2003-12-30 21:42:26 得分 0
float maxx(float x,float y, float z)
{
float max=x;
if (z>y){ if (z>x) max=z;}
else if (y>x) max=y;
return (max);
}
Top
2 楼smalltalk(老徐)回复于 2003-12-30 21:48:44 得分 0
最简单的是用个宏来替代:
#define maxx(X, Y, Z) ( (X) > ((Y)>(Z)?(Y):(Z)) ? (X) : ((Y)>(Z)?(Y):(Z)) )
Top
3 楼daily1980(学好C++)回复于 2003-12-30 22:19:39 得分 0
##define E 0.00001
float maxx(float x,float y, float z)
{
float max = x;
if ((max-y) > E)
{
if ((max - z) > E)
{
}
else
{
max = z;
}
}
else
{
max = y;
if ((max - z) > E)
{
}
else
{
max = z;
}
}
return (max);
}
Top
4 楼quickball()回复于 2003-12-30 22:31:17 得分 0
浮点数在计算机中存储时总会与你指定的有误差,所以两个浮点数的比较用逻辑运算符有时不会得出正确的结果。Top
5 楼zhangfjj(小张)回复于 2003-12-30 23:13:26 得分 0
//floot maxx(float x.float y, floatz)//笔误?
float maxx(float x,float y,float x)
{
float max=x;
if (z>y)
{
if (z>x)
{
max=z;
}
}
else if (y>x)
{
max=y;
}
return (max);
}
浮点数存储有误差,只是在做相等比较会得不到正确结果,不象楼上说的。
除了函数首部不知是输入错误还是其他,整个函数代码写得太罗嗦,效率不高而已,没有其他错。Top
6 楼glacierrr(冰河纪的怪鸟)回复于 2003-12-31 00:24:13 得分 0
最简单的是用个宏来替代:
#define maxx(X, Y, Z) ( (X) > ((Y)>(Z)?(Y):(Z)) ? (X) : ((Y)>(Z)?(Y):(Z)) )
这个宏写起来是简单了,可是我看懂就要花好多时间了,还是要注意可读性和可维护性吧
再次,宏总是要淘汰的了,用函数好一点了Top
7 楼liquanle()回复于 2003-12-31 00:26:40 得分 0
就是由于你的笔误导致的错误。Top
8 楼liquanle()回复于 2003-12-31 00:27:28 得分 0
floot maxx(float x.float y, floatz)
就是由于你的笔误导致的错误,应该是 float x,逗号写成点了。Top
9 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2003-12-31 09:50:12 得分 0
没错啊!Top
10 楼tryboy(亲一亲吻一吻)回复于 2003-12-31 10:37:31 得分 0
float maxx(float x,float y,float x)
{
float max=x;
if (max<y)
max=y;
f (max<z)
max=z;
return (max);
}
我觉得这样子比较的简洁.
Top
11 楼azmao(azmao)回复于 2003-12-31 10:43:46 得分 0
float maxx(float x,float y,float z)
{
float max=x;
if (y>max)
max=y;
if (z>max)
max=z;
return (max);
}
Top
12 楼bangba(伯虎点蚊香)回复于 2003-12-31 10:58:11 得分 0
学习~!Top
13 楼rockhard(不签名)回复于 2003-12-31 11:25:58 得分 0
#define maxx(X, Y, Z) ( (X) > ((Y)>(Z)?(Y):(Z)) ? (X) : ((Y)>(Z)?(Y):(Z)) )
同意Top
14 楼nobush()回复于 2003-12-31 13:50:55 得分 0
除了函数首部是输入笔误,整个函数代码没有其他错Top
15 楼green405(君仔)回复于 2003-12-31 15:23:04 得分 0
如果按照这种方法来编,好象程序中没有考虑变量的全部情况Top
-
相关文章
关于可连续重用程序包和非连续重用程序包的区别
楼主zhanggok()2003-12-30 21:24:03 在 Oracle / 开发 提问1可连续重用包 …
请问如结贴时"给分的和"与"原有分"比较的做法?
楼主look4sword(觅剑 | 劈柴、喂马、周游世界。大调查:如果你是销售人员或售前人员请说出你的底薪和一般的月薪。
请教怎么分析一段具体时间的数据变化...........................
楼主jiangchuandong(岁月的流逝......)2003-12-30 21:18:59 在 其他数据库开发…求助:关于QuickRep生成报表超时。
各位高手,小弟我要做一个文本方式下的方框,求各位帮忙
楼主caonimabi(王胜书)2003-12-30 21:15:03 在 其他开发语言 / 汇编语言 提问小弟…
急!PB软件的使用期限设置!
楼主yt9858(孤星剑)2003-12-30 21:13:58 在 PowerBuilder / 基础类 提问我想在我的软件中加入一个时间限制, …
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn
