我算的是3结果是1 怎么算的呢

#include < stdio.h>

#define SQR(x) x*x

void main()

int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);
printf("%d',a);

首先,需要明白的一个点是:宏定义的展开是在程序的预处理阶段完成的,而且是直接的展开,直接进行符号与数字替换,不会进行计算。
所以“(SQR(k+m)/SQR(k+m))”直接展开后是等于这样的形式“k+m*k+m/k+m*k+m”,也就是3+1*3+1/3+1*3+1=10,所以最后结果会是1。
哥们,你别顾着提问题,你前面的题目解答还没采纳呢,动动小手点一下采纳可以吗?