1179: 带参宏定义(函数专题)
题目描述
从键盘输入三个字符,用空格隔开,使用带参宏定义1中SWAP,将三个字符按从大到小的顺序排序输出。
宏定义1:#define SWAP(a, b, t) { t=a; a=b; b=t; }
请尝试,如果用宏定义2中的SWAP,主函数需要如何修改才能得到正确结果?
宏定义2:#define SWAP(a, b, t) t=a; a=b; b=t;
输入
输入三个字符,用空格隔开
输出
输出占一行,包含三个字符,用空格隔开
样例输入 Copy
w a q
样例输出 Copy
w q a
宏定义1:
#include<stdio.h>
#define SWAP(a,b,t){t=a; a=b; b=t;}
int main()
{
char a,b,c,t;
scanf("%c %c %c",&a,&b,&c);
if(a<b)
SWAP(a,b,t);
if(a<c)
SWAP(a,c,t);
if(b<c)
SWAP(b,c,t);
printf("%c %c %c\n",a,b,c);
return 0;
}
宏定义2:
#include<stdio.h>
#define SWAP(a,b,t) t=a; a=b; b=t;
int main()
{
char a,b,c,t;
scanf("%c %c %c",&a,&b,&c);
if(a<b)
{
SWAP(a,b,t);
}
if(a<c)
{
SWAP(a,c,t);
}
if(b<c)
{
SWAP(b,c,t);
}
printf("%c %c %c\n",a,b,c);
return 0;
}