ZZULIOJ 1179: 带参宏定义(函数专题)

╄→гoц情女王★ 提交于 2019-12-17 01:07:42

题目描述
从键盘输入三个字符,用空格隔开,使用带参宏定义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:#define SWAP(a, b, t) { t=a; a=b; b=t; }

#include <stdio.h>
#define SWAP(a,b,t) {t = a;a = b;b = t;}
int main(){
	char x,y,z,t;
	scanf("%c %c %c",&x,&y,&z);
	if(x<y) SWAP(x,y,t);//x>y
	if(x<z) SWAP(x,z,t);
	if(y<z) SWAP(y,z,t);//
	printf("%c %c %c",x,y,z);
}

宏定义2:#define SWAP(a, b, t) t=a; a=b; b=t;

#include <stdio.h>
#define SWAP(a,b,t) t = a;a = b;b = t;
int main(){
	char x,y,z,t;
	scanf("%c %c %c",&x,&y,&z);
	if(x<y) {SWAP(x,y,t);}//x>y
	if(x<z) {SWAP(x,z,t);}
	if(y<z) {SWAP(y,z,t);}//
	printf("%c %c %c",x,y,z);
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!