tempad
ReadyGo!技术成就梦想 >>数据库技术 >> 请问这求最大值的函数有什么错?

请问这求最大值的函数有什么错?

ReadyGo!技术成就梦想 网络搜索 efish 2008-1-13 8:41:25

请问这求最大值的函数有什么错?

楼主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

责任编辑: efish 参与评论 查找更多:
相关文章
richTextBox选中的字体更改后出现的问题 richTextBox选中的字体更改后出现的问题
关于可连续重用程序包和非连续重用程序包的区别

关于可连续重用程序包和非连续重用程序包的区别

楼主zhanggok()2003-12-30 21:24:03 在 Oracle / 开发 提问

1可连续重用包     …

请问如结贴时"给分的和"与"原有分&q…

请问如结贴时"给分的和"与"原有分"比较的做法?

楼主look4sword(觅剑 | 劈柴、喂马、周游世界。
大调查:如果你是销售人员或售前人员请说出你的底薪…

大调查:如果你是销售人员或售前人员请说出你的底薪和一般的月薪。

系统用的时间长了, 系统用的时间长了,
请教怎么分析一段具体时间的数据变化..............…

请教怎么分析一段具体时间的数据变化...........................

楼主jiangchuandong(岁月的流逝......)2003-12-30 21:18:59 在 其他数据库开发…
求助:关于QuickRep生成报表超时。

求助:关于QuickRep生成报表超时。

各位高手,小弟我要做一个文本方式下的方框,求各位…

各位高手,小弟我要做一个文本方式下的方框,求各位帮忙

楼主caonimabi(王胜书)2003-12-30 21:15:03 在 其他开发语言 / 汇编语言 提问

小弟…

急!PB软件的使用期限设置!

急!PB软件的使用期限设置!

楼主yt9858(孤星剑)2003-12-30 21:13:58 在 PowerBuilder / 基础类 提问

我想在我的软件中加入一个时间限制, …

2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想