#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define SIZE 11
#define LIM 101
void pro(char (*a)[LIM]);
void p1(char (*a)[LIM]);
void p2(char (*a)[LIM]);
void p3(char (*a)[LIM]);
void p4(char (*a)[LIM]);
int main()
{
char a[SIZE][LIM];
for (int i = 0; i < 10; i++)
fgets(a[i], 101, stdin);
pro(a);
return 0;
}
void pro(char (*a)[LIM])
{
char ch;
printf("1 2 3 4 5\n");
while ((ch = getchar()) != '5')
{
if (ch == '\n')
continue;
switch(ch)
{
case '1':
p1(a);
break;
case '2':
p2(a);
break;
case '3':
p3(a);
break;
case '4':
p4(a);
break;
default:
printf("1 2 3 4 5\n");
}
printf("1 2 3 4 5\n");
}
}
void p1(char (*a)[LIM])
{
for (int i = 0; i < 10; i++)
fputs(a[i], stdout);
}
void p2(char (*a)[LIM])
{
int top, seek;
for (top = 0; top < 9; top++)
for (seek = top + 1; seek < 10; seek++)
if (strcmp(a[top], a[seek]) > 0)
{
strcpy(a[10], a[top]);
strcpy(a[top], a[seek]);
strcpy(a[seek], a[10]);
}
p1(a);
}
void p3(char (*a)[LIM])
{
char * temp;
for (int i = 0; i < 9; i++)
for (int m = i + 1; m < 10; m++)
if (strlen(a[i]) > strlen(a[m]))
{
strcpy(a[10], a[i]);
strcpy(a[i], a[m]);
strcpy(a[m], a[10]);
}
p1(a);
}
void p4(char (*a)[LIM])
{
char * temp;
int q, w, e, r;
q = w = e = r = 0;
for (int i = 0; i < 9; i++)
for (int l = i + 1; l < 10; l++)
{
while (a[i][e] == ' ')
e++;
while (a[i][e] != ' ' && a[i][e] != '\0')
{
q++;
e++;
}
while (a[l][r] == ' ')
r++;
while (a[l][r] != ' ' && a[l][r] != '\0')
{
w++;
r++;
}
if (q > w)
{
strcpy(a[10], a[i]);
strcpy(a[i], a[l]);
strcpy(a[l], a[10]);
}
q = w = e = r = 0;
}
p1(a);
}