题目如下
#include<stdio.h>
#define SWAT(t,a,b) t=a;a=b;b=t;
int main()
{
int x = 6, y = 4, z = 3, s = 0;
if(x<y) SWAT(s,x,y);
if(x<z) SWAT(s,x,z);
if(y<z) SWAT(s,y,z);
printf("%d %d %d \n", x, y, z);
return 0;
}
问我输出后的结果是什么,然后我想来想去应该还是原来的数啊。后来百度上搜了一下终于懂了<哭> 其实也不难,以后要多注意一下啊
#include<stdio.h>
#define SWAT(t,a,b) t=a;a=b;b=t;
int main()
{
int x = 6, y = 4, z = 3, s = 0;
if(x<y) SWAT(s,x,y);
//if后面没有加花括号 so符合条件的话执行s=x x=y还有y=s是一定要执行的 后面同理
if(x<z) SWAT(s,x,z);
if(y<z) SWAT(s,y,z);
printf("%d %d %d \n", x, y, z);
return 0;
}
红色的为展开来会执行的语句 后面为每一个数的值 最后答案为3 0 0