#define m(x) x*x*(x+1)
main() {int a=2,b=3;
printf("%d\n",m(a+b));
}
那么结果是26
m(a+b)的展开式是a+b*a+b*(a+b+1),结果是26
#define m(x) (x)*(x)*(x+1)
main() {int a=2,b=3;
printf("%d\n",m(a+b));
}
那么结果是150
m(a+b)展开式是(a+b)*(a+b)*(a+b+1)结果是5*5*6=150
你的程序中宏定义是错误的,应该是输入时不小心造成的...赞同0| 评论