View Code of Problem 97

#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.


Back to problem 97