标题:请教:下题的结果为什么是3,28??
取消只看楼主
xyzyangxu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-21
 问题点数:0 回复次数:3 
请教:下题的结果为什么是3,28??

#define MIN(x,y) (x)>(y)?(x):(y)
#define T(x,y,r) x*r*y/4
main()
{
int a=1,b=3,c=5,s1,s2;
s1=MIN(a=b,b-a);
s2=T(a++,a*++b,a+b+c);
printf("%d,%d",s1,s2);
}


按本人的推论:
MIN宏展开后:s1=(a=b)>(b-a)?(a=b):(b-a)
即: (a=3)>(3-1)>(a=3):(3-1)
所以:s1=a=3

T宏展开后:s2=a++*a+b+c*a*++b/4
即: 3*4+4+5*4*3/4
得: 31

不知错在哪里,请指教!

搜索更多相关主题的帖子: MIN 结果 define int 
2006-11-08 14:40
xyzyangxu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-21
得分:0 
为什么没人帮我!
2006-11-08 15:28
xyzyangxu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-21
得分:0 

我在TC2.0中运行的结果的确是 3,28. 不解!

2006-11-08 16:43
xyzyangxu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-21
得分:0 
感谢指教
2006-11-09 16:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-101499-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.398356 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved