又一个C语言问题,麻烦好心人看看

[复制链接]
2690|8
 楼主| le062 发表于 2010-9-17 21:55 | 显示全部楼层 |阅读模式
  1. #include<stdio.h>
  2. #define MAX(A,B) A>B?(A):(B)
  3. void main()
  4. {
  5. int a=1,b=2,c=3,d=4,t;
  6. t=MAX(a+b,c+d);
  7. printf("%d\n",t);
  8. }

输出为7  没问题
  1. #include<stdio.h>
  2. #define MAX(A,B) A>B?(2*A):(2*B)
  3. void main()
  4. {
  5. int a=1,b=2,c=3,d=4,t;
  6. t=MAX(a+b,c+d);
  7. printf("%d\n",t);
  8. }

输出为10 为什么不是14啊
谢谢
hulie 发表于 2010-9-17 22:06 | 显示全部楼层
本帖最后由 hulie 于 2010-9-17 22:08 编辑

因为t=(1+2)>(3+4)?(2*1+2):(2*3+4),你自己看吧
 楼主| le062 发表于 2010-9-17 22:18 | 显示全部楼层
哦 十分感谢,我这是基础功太差了
Jack_X 发表于 2010-9-18 10:02 | 显示全部楼层
我基础更差,还没想明白...:L
DINGXIAOYU777 发表于 2010-9-18 17:59 | 显示全部楼层
2楼正解
DINGXIAOYU777 发表于 2010-9-18 18:01 | 显示全部楼层
你要输出14
把#define MAX(A,B) A>B?(2*A):(2*B)
改为
#define MAX(A,B) A>B?(2*(A)):(2*(B))
yao19890601 发表于 2010-9-20 11:30 | 显示全部楼层
来学习的
hxs2020 发表于 2010-9-24 12:58 | 显示全部楼层
#define MAX(A,B) A>B?(2*A):(2*B)  错了。
xwj 发表于 2010-9-24 13:00 | 显示全部楼层
都不喜欢加()的???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

435

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部