免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: HappyWin

不用判断语句,求两个数的最大值  关闭 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-10-12 12:26 |显示全部楼层

不用判断语句,求两个数的最大值

^_^,老大,abs的运算不用到判断吗?

论坛徽章:
0
发表于 2004-10-12 12:33 |显示全部楼层

不用判断语句,求两个数的最大值

abs 可以看成黑盒,但那个方法会溢出。

论坛徽章:
0
发表于 2004-10-12 12:40 |显示全部楼层

不用判断语句,求两个数的最大值

[quote]原帖由 "aero"]^_^,老大,abs的运算不用到判断吗?[/quote 发表:



库里面实现也算?那肯定不可能实现,任何一个系统调用都有数不清的判断.  

论坛徽章:
0
发表于 2004-10-12 12:41 |显示全部楼层

不用判断语句,求两个数的最大值

to FH:

我的 PM 还是不能用。

你好象是说我的第二个版本使用了比较。我的看法如下:

比较与判断是不同的, a>;b 是一个逻辑表达式,而 ? : 是条件表达式。按我理解的题意,不能用的是后者。可以用汇编来说明一下,cmp 是个比较,其后的 jne 之类的语句才是判断。

如果连逻辑表达式也不能用,那只有你给出的代码完全可用。

但我估计题意是允许使用 逻辑表达式 的。

论坛徽章:
0
发表于 2004-10-12 13:14 |显示全部楼层

不用判断语句,求两个数的最大值

abs是正解吧

论坛徽章:
0
发表于 2004-10-12 13:19 |显示全部楼层

不用判断语句,求两个数的最大值

我觉得题的愿意就是考考数学思维
更为显得太复杂的!

论坛徽章:
0
发表于 2004-10-12 13:26 |显示全部楼层

不用判断语句,求两个数的最大值

to win_hate:
同意,是我当初没看清楚题目。
另外,同意你所说的abs溢出问题。

使用逻辑表达式,wg0124的思路很好。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2004-10-12 14:45 |显示全部楼层

不用判断语句,求两个数的最大值

  1. 呵呵,我来试试

  2. ----------------------------------------------

  3. #include <stdio.h>;
  4. #include <math.h>;

  5. int max( int a , int b )
  6. {
  7.         int buf[3];
  8.         int max;

  9.         buf[0] = a ;
  10.         buf[1] = 0 ;
  11.         buf[2] = b ;

  12.         max = buf[ (int)( ( b - a ) / fabs( b - a ) + 1 ) ] ;

  13.         return max;
  14. }

  15. int main()
  16. {
  17.         int x,y;

  18.         x=3;
  19.         y=5;

  20.         printf( "max( %d , %d ) = %d\n" , x , y , max(x,y) );

  21.         return 0;
  22. }
复制代码

论坛徽章:
0
发表于 2004-10-12 14:50 |显示全部楼层

不用判断语句,求两个数的最大值

楼上的问题:
b==a时被0除了
abs的溢出/fabs的误差

论坛徽章:
0
发表于 2004-10-12 15:10 |显示全部楼层

不用判断语句,求两个数的最大值

ding
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP