|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 宏的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1666
人关注过本帖
标题:
宏的问题
取消只看楼主
加入收藏
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
楼主
收藏
问题点数:0 回复次数:13
宏的问题
#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\n",s1,s2);
getch();
/* 请不要删除此行 */
}
请教,s2为什么等于28?
谢谢
2004-08-17 15:08
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
2
楼
收藏
得分:0
是谭老的习题集上的,
计算机算出是28
可就是不明白为什么?
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 09:43
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
3
楼
收藏
得分:0
#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\n",s1,s2);
}
不好意思,输入调试时多了()。
将第二个#define 改成
#define
x*r*y/4
结果就是28。
郁闷!
为什么啊?
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 10:29
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
4
楼
收藏
得分:0
请详细指点一二。
谢谢!
a++*a
= 12?
b=4
c*a*++b/4=5*4*4/4=20
问题在哪?????
计算顺序是否是左到右?
谢谢!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:02
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
5
楼
收藏
得分:0
还是糊涂:
如果不调用s2=T(。。。。)
直接使用以下语句:
printf("%d\n",a++*a+b+c*a*++b/4);
结果????
郁闷!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:12
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
6
楼
收藏
得分:0
还是糊涂:
如果不调用s2=T(。。。。)
直接使用以下语句:
printf("%d\n",a++*a+b+c*a*++b/4);
结果????
为什么是31??算法和调用T(x,y,r)有什么不同?????
郁闷!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:27
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
7
楼
收藏
得分:0
b应该是4,没有什么问题,先++b
中间的b成了4,可
printf("%d\n",a++*a+b+c*a*++b/4);
和原先的区别在哪????
郁闷!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:29
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
8
楼
收藏
得分:0
先计算最后的c*a*++b,则b=4,再计算中间的+b+,所有b=4
郁闷啊郁闷!my god!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:41
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
9
楼
收藏
得分:0
1、不是我要这么做,这是一道试题。谭浩强书上的练习。
2、为什么调用T宏和直接展开后printf结果不同?
3、定义宏时为 T(x,y,r)
x*r*y/4
没有()
郁闷!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:51
举报帖子
使用道具
赠送鲜花
xuwinsun
等 级:
新手上路
帖 子:28
专家分:0
注 册:2004-8-17
第
10
楼
收藏
得分:0
这我知道,可现在的printf中没有“,”运算。只有一个语句。
郁闷!
我:“日本人也算人?” 上帝:“不算。将它们圈养就行了。美国人在它们头上扔两蛋不就乖得很吗?你们讲究什么仁义道德?” http://www./bbs/dispbbs.asp?BoardID=1&RootID=36493&id=36500&star=1&skin=0
2004-08-18 11:55
举报帖子
使用道具
赠送鲜花
14
1/2页
1
2
快速回复:
宏的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.028733 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved