3465 - 习题8-2 字符串排序输出
输入3个字符串,按有小到大的顺序输出。
Input
分三行进行输入,每行一个字符串。
(以回车结束每一行的输入)
Output
输出排序后的三个字符串,每个字符串占一行。
Examples
Input
tianjin beijing chengdu
Output
beijing chengdu tianjin
Solution 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); }
Solution 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; }