View Code of Problem 3499

#include <stdio.h>
#include <string.h>
typedef struct node{
    char ch[20];
}node;



int main(void)
{
    int n;
    while(scanf("%d",&n) != EOF && n)
    {
        int i,j,index1 = 0,index2 = 0;
        char s[20],s1[20],s2[20],str[1000][20];
        node exe[1000];
        for(i = 0;i < n;i++)
        {
            int k = 0;
            scanf("%s",s);
            if(strlen(s) < 5)
            {
                strcpy(str[index1++],s);
            }
            else
            {
                for(j = strlen(s) - 4;j < strlen(s);j++)
                {
                    s1[k++] = s[j];
                }
                strncpy(s2,s,strlen(s) - 4);
                s2[strlen(s) - 4] = '\0';
                s1[k] = '\0';
                if(strcmp(s1,".exe") == 0)
                {
                    strcpy(exe[index2++].ch,s2);
                }
                else
                {
                    strcpy(str[index1++],s);
                }
            }
        }
        for(i = 0;i < index2;i++)
        {
            char max[20];
            strcpy(max,exe[i].ch);
            for(j = i + 1;j < index2;j++)
            {
                if(strcmp(max,exe[j].ch) > 0)
                {
                    strcpy(exe[i].ch,exe[j].ch);
                    strcpy(exe[j].ch,max);
                    strcpy(max,exe[i].ch);

                }
            }
        }
        for(i = 0;i < index2;i++)
        {
            for(j = 0;j < index1;j++)
            {
                if(strcmp(exe[i].ch,str[j]) == 0)
                {
                    printf("%s",exe[i].ch);
                    printf(".exe\n");
                    break;
                }
            }
        }
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 3499