三个字符串从小到大排列

题目描述

输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。

输入

3行,每行一个用字符串。保证每个字符串的长度不超过20。

输出

按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。

样例输入

China
CLOCK
deal

样例输出

CLOCK
China
deal
思路:其中数组的交换需要对数组内元素进行逐个交换。
#include<cstdio>
#include<cstring>
void cmp_xy(char *x,char *y,char *temp){
	int i=0;
	int max_n=strlen(x)>strlen(y)?strlen(x):strlen(y)+1;
	while(!(x[i]=='\0'&&y[i]=='\0')){
		if(x[i]>y[i]){
			for(int j=0;j<max_n;j++){
				temp[j]=x[j];
				x[j]=y[j];
				y[j]=temp[j];
			}
			break;			
		}else if(x[i]<y[i])break;
		else i++;
	}
}
int main(){
	char a[20],b[20],c[20],temp[20];
	gets(a);
	gets(b);
	gets(c);
	cmp_xy(a,b,temp);
	cmp_xy(b,c,temp);
	cmp_xy(a,b,temp);
	puts(a);
	puts(b);
	puts(c);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/firmthinking/article/details/80776663