1 #include <cstdio>
2 #include <cstring>
3 using namespace std;
4
5 void get_max(char *&a, char *&b)
6 {
7 bool flag = false;
8 int len1 = strlen(a), len2 = strlen(b);
9 int len = (len1 > len2) ? len2 : len1;
10 for(int i = 0; i < len; ++i)
11 {
12 if(*(a + i) > *(b + i))
13 {
14 flag = true;
15 char *temp = a;
16 a = b;
17 b = temp;
18 break;
19 }
20 else if(*(a + i) == *(b + i))
21 continue;
22 else
23 return;//这里一开始写的break,导致直接变成按字符串长度排序
24 }
25 if(flag)
26 return;
27 else
28 {
29 if(len2 < len1)
30 {
31 char *temp = a;
32 a = b;
33 b = temp;
34 }
35 }
36 }
37
38 void get_ordered(char *&a, char *&b, char *&c)
39 {
40 get_max(b, c);
41 get_max(a, b);
42 get_max(b, c);
43 }
44
45 int main()
46 {
47 char a[35], b[35], c[35];
48 scanf("%s", a);
49 scanf("%s", b);
50 scanf("%s", c);
51 char *x = a, *y = b, *z = c;
52 get_ordered(x, y, z);
53 printf("%s\n%s\n%s\n", x, y, z);
54 }