下面程序怎么得出8.0的

[复制链接]
查看11 | 回复1 | 2010-10-13 19:24:11 | 显示全部楼层 |阅读模式
#define PT 3.14
#define S(x) PT*x*x
#include
main()
{int a=2;
printf("%4.1f",6.28/S(a));
}

回复

使用道具 举报

千问 | 2010-10-13 19:24:11 | 显示全部楼层
因为S(x)展开后是PT*x*x,就是3.14*x*x,代进去就是6.28/3.14*2*2=2.0*2*2=8.0。要注意的是宏展开的时候不会自动带括号,所以你的情况就是按从左至右的顺序计算了,而不是先计算3.14*2*2,再做除法
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行