#include "stdio. h" #define M(x,y)x%y main( ) { int a,m=12,n=100; a=M(n,m);printf("%d\n",a--);}

#include "stdio. h" #define M(x,y)x%y main( ) { int a,m=12,n=100; a=M(n,m);printf("%d\n",a--);}
这个程序怎么算的是等于4呢?为什么不是2。。

100 % 12 就等于4啊
a-- 是先返回a原本的值再对a减少1
所以printf("%d\n",a--);输出的就是4
如有帮助,望采纳!谢谢!

100%12结果为4

printf("%d\n",a--)

先输出a,所以结果为4