#include<stdio.h>
#define SQR(X) X*X
main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
#include<stdio.h>
#define SQR(X) X*X
main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
这是除号,不是求余。
宏定义有个缺点是会直接代入,不会自动加括号,所以你这题a的运算实际上是
a = a / (k +m * k + m / k + m * k + m)
也就是a = a / (2+1*2+1/2+1*2+1)
即a = 10 / 7
因为a是整型,所以结果取整,答案为1