宏定义只是单纯的替换后面的符号哦,没有括号的呀,在计算时不要加上括号呀
(M+1)* M/2 换个写法(比较好理解)如下
(M+1)* M*1/2 对M直接宏替换后
(N+1+1)* N+1*1/2,在对N进行宏替换
(2+1+1)*2+1/2 = 8.5
在printf使用%d进行整形输出,所以答案为8
如果对你有帮助的话,能不能点击右上方【采纳该答案】呢,谢谢支持!!!
宏只是简单替换, 你算的时候在第二步错了
SUM 按值替换后的公式为
( 2+1+1 )* 2+1 /2
4*2+0 = 8
因为宏定义只是简单的替换字符串,并不是定义某个字符代表某个值。
所以实际上是(n+1+1)n+1/2=42+0=8