3465 - 习题8-2 字符串排序输出

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 12 MB

输入3个字符串,按有小到大的顺序输出。

题目输入

分三行进行输入,每行一个字符串。

(以回车结束每一行的输入)

题目输出

输出排序后的三个字符串,每个字符串占一行。

输入/输出样例

输入格式

tianjin
beijing
chengdu

输出格式

beijing
chengdu
tianjin

C语言解答

#include"stdio.h"

#include"string.h"
int main()
{void swap(char *,char *);
char str1[20],str2[20],str3[20];
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0)swap(str1,str2);
if(strcmp(str1,str3)>0)swap(str1,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printf("%s\n%s\n%s\n",str1,str2,str3);

return 0;
}

void swap(char *p1,char *p2)
{
	char p[20];
	strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}

C++解答

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>

using namespace std;

int cmp(string a,string b)
{
	return a<b;
}

int main()
{
	int i;
	string str[128];
	char tmp[128];
	for (i = 0; i < 3; i++)
	{
		cin.get(tmp,128);
		getchar();
		str[i] = tmp;
	}

	sort(str,str+3,cmp);

	for (i = 0; i < 3; i++)
		cout << str[i] << '\n';

	return 0;
}