众泰t300图片:#define MAX(x,y) (x)>(y)?(x):(y) main(){int a=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf("%d\n",t);}

来源:百度文库 编辑:神马品牌网 时间:2024/04/26 03:58:02
#define MAX(x,y) (x)>(y)?(x):(y)
main()
{int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);}
我算的是70,答案是7,我晕...
这个宏替换的过程给写一下行不?

#include"stdio.h"
#define MAX(x,y) (x)>(y)?(x):(y)
main()
{int a=5,b=2,c=3,d=3,t;
int tem=MAX(a+b,c+d);
t=tem*10;
printf("%d\n",t);
}
错误原因:
7>6 ? 7:6*10 结果为 7
你按我上面的修改就行了. 其实你 为什么要用宏,直接把宏变为函数也行的.
或者 你这样定义宏
#define MAX(x,y) ((x)>(y)?(x):(y) ) //只是加了括号"()"而已
这样也可以达到目的.