View Code of Problem 97

#include <stdio.h>
#include <string.h>

#define N 1000
#define M 20

int main()
{
	int n, i, j, len, k = 0, l = 0, s;
    char data[N][M] = {'0'};

	while(scanf("%d", &n) != EOF && n != 0){
		char EXE[N][M] = {'0'};
		char real[N][M] = {'0'};
		char out[N][M] = {'0'};
		char temp[M];

		for(i = 0; i < n; i++){
			scanf("%s", data[i]);
			len = strlen(data[i]);

			if(data[i][len - 1] == 'e'){
				strcpy(EXE[k], data[i]);
				strcpy(real[k], data[i]);
				EXE[k][len - 4] = '\0';
				k++;
			}
		}

		for(i = 0; i < n; i++){
			for(j = 0; j < k; j++){
				if(strcmp(EXE[j], data[i]) == 0){
					strcpy(out[l++], real[j]);
				}
			}
		}
		for(i = 0; i < l - 1; i++){
			s = i;
			for(j = i; j < l; j++){
				if(out[j][1] < out[s][1]){
					s = j;
				}
			}
			if(s != i){
				strcpy(temp, out[s]);
				strcpy(out[s], out[i]);
				strcpy(out[i], temp);
			}
		}
		for(i = 0; i < l; i++){
			printf("%s\n", out[i]);
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 97