#include<stdio.h> #include<string.h> int main() { int n,i,j,len,k,l,flag,d,max,o; char a[1000][17]; char temp[1][17]; char b[1000][17],c[1000][13]; while(scanf("%d",&n)!=EOF) { //读数据进去 if(n<=0||n>1000) break; for (i=0;i<n;i++) scanf("%s",a[i]); //判断末尾是不是.exe 是的话把他前len-4位存到数组c中 k=0; for (j=0;j<i;j++) { len=strlen(a[j]); if(a[j][len-1]=='e'&&a[j][len-2]=='x'&&a[j][len-3]=='e'&&a[j][len-4]=='.') { strcpy(b[k],a[j]); for(l=0;l<len-4;l++) c[k][l]=a[j][l]; c[k][l]=0; k++; } } //查找有相同前缀的文件,若无则用后面的覆盖掉 d=k; o=0; for( i=0;i<k;i++) { flag=0; for(j=0;j<n;j++) if(strcmp(c[i+o],a[j])==0) { flag=1; break; } if(flag!=1) { for(l=i;l<k+1;l++) strcpy(b[l],b[l+1]); d--; k--; i--; o++; } } //排序,输出 for(i=0;i<k;i++) { max=i; for(j=i+1;j<d;j++) if(strcmp(b[max],b[j])>0) { strcpy(temp[0],b[max]); strcpy(b[max], b[j]); strcpy(b[j],temp[0]); } } for(i=0;i<d;i++) printf("%s\n",b[i]); } return 0; } |
Double click to view unformatted code.