#include<stdio.h> #include<string.h> #include<math.h> typedef struct info{ char a[20]; }info; int main() { int n,i,j,k=0,k1,f; info lis[1000],lis2[1000],tep,min; char temp[20]; while (scanf("%d",&n)!=EOF) { if (n == 0) { break; } k = 0; for (i = 0; i < n; i++) { scanf("%s", lis[i].a); } for (i = 0; i < n; i++) { strcpy(temp, lis[i].a); if (temp[strlen(temp) - 1] == 'e' && temp[strlen(temp) - 2] == 'x'&& temp[strlen(temp) - 3] == 'e'&& temp[strlen(temp) - 4] == '.'){ temp[strlen(temp) - 4] = '\0'; for (j = 0; j < n; j++) { if (strcmp(lis[j].a, temp) == 0) { strcpy(lis2[k].a, lis[i].a); k++; } } } } for (i = 0; i < k - 1; i++) { min = lis2[i]; k1 = i; f = 0; for (j = i + 1; j < k; j++) { if (strcmp(min.a, lis2[j].a) > 0) { f = 1; k1 = j; min = lis2[j]; } } if (f == 1) { tep = lis2[k1]; lis2[k1] = lis2[i]; lis2[i] = tep; } } for (i = 0; i < k; i++) { printf("%s\n", lis2[i].a); } } return 0; } |
Double click to view unformatted code.