作业帮 > 综合 > 作业

#define SQR(X) X*X #include void main(){ int a=16,k=2,b=4,m=

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/09 13:13:37
#define SQR(X) X*X #include void main(){ int a=16,k=2,b=4,m=1 ; a/=SQR(k+m)/SQR(k+m); pri
#define SQR(X) X*X
#include
void main(){
int a=16,k=2,b=4,m=1 ;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
为什么?
#define SQR(X) X*X #include void main(){ int a=16,k=2,b=4,m=
宏定义有替代的意思.
SQR(k+m)/SQR(k+m)展开后,变成k+m*k+m/k+m*k+m,显然,这不是你想要的结果.
正确的宏定义是:
#define SQR(x) (x)*(x)
再问: 不,这就是个选择题,它就是故意没有加括号的............答案等于多少啊??????
再答: 你按我展开给你的等式算算就知道.
再问: 了解,展开的时候弄错了,,,,,,,,,,,,呵呵.......谢谢啊 采纳了!!!