View Code of Problem 97

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


Back to problem 97