/*题目要求是:给出a,b,c三个数,将它们按值大小排列打印出来*/
#include <stdio.h>
#define U(A,B,T) ((A>B)?(((T=A)||1)?(((A=B)||1)?(B=T):0):0):0)
/*升序*/
#define D(A,B,T) ((A<B)?(((T=A)||1)?(((A=B)||1)?(B=T):0):0):0)
/*降序*/
#define FOO(A,B,C,T,F) (F##(A,B,T)||1)?(F##(A,C,T)||1)?F##(B,C,T):0:0
int main(void)
{
int a=45,b=28,c=42;
int temp;
FOO(a,b,c,temp,D);//a,b,c是数据,temp是交换用的,D代表降序,U代表升序
printf("/nD: %d,%d,%d/n",a,b,c);
FOO(a,b,c,temp,U);
printf("/nU: %d,%d,%d/n",a,b,c);
return 0;
}