关于上一次的病毒扫描问题,再次开贴请教.
上一次发了一个病毒扫描问题.这一次把我的和同学程序一并发上来,求教有什么不同???

#include<stdio.h> #include<string.h> int main() { int n,m,i,j,q,k; char a[1000][100],b[100],c[1000][100]; char d[100]; for(;;) { scanf("%d\n",&n); if(n==0)break; q=0; for(i=0;i<n;i++) gets(a[i]); for(i=0;i<n;i++) { m=strlen(a[i]); if(m>4&&a[i][m-1]=='e'&&a[i][m-2]=='x'&&a[i][m-3]=='e'&&a[i][m-4]=='.') { for(j=0;j<m-4;j++) b[j]=a[i][j]; b[j]='\0'; for(j=0;j<n;j++) { if(strcmp(b,a[j])==0) { strcpy(c[q],a[i]); q++; } } } else continue; } if(q==1) puts(c[0]); else { for(i=0;i<q;i++) { strcpy(b,"zzzzzzzzzzzzzzzzzzzzzzzzzzz"); for(j=i;j<q;j++) { if(strcmp(c[j],b)<0) { strcpy(b,c[j]); k=j; } } strcpy(d,c[i]); strcpy(c[i],b); strcpy(c[k],d); } for(i=0;i<q;i++) puts(c[i]); } } return 0; }
#include<stdio.h> #include<string.h> int main() { int sum,num,i,j,flag=0,mark=0; char ss[1001][20],s1[1001][20],s2[1001][20],s3[1001][20],tmp[20]; while(scanf("%d",&sum)&&sum){ if(sum==0)break; scanf("\n"); for(i=0;i<sum;i++){ gets(ss[i]); } //输入 for(i=0;i<sum;i++) for(j=0;;j++){ if(ss[i][j]=='\0'||ss[i][j]=='\n')break; if(ss[i][j]=='.'&&ss[i][j+1]=='e'&&ss[i][j+4]=='\0') { strcpy(s1[flag],ss[i]); flag++; break; } } //末尾是.exe的保存 for(i=0;i<flag;i++) for(j=0;;j++){ s2[i][j]=s1[i][j]; if(s1[i][j+1]=='.'&&s1[i][j+2]=='e'&&s1[i][j+5]=='\0'){ s2[i][j+1]='\0'; break; } } //把.exe割掉 for(i=0;i<flag;i++) for(j=0;j<sum;j++){ if(strcmp(s2[i],ss[j])==0) { strcpy(s3[mark],s1[i]); mark+=1; break; } } //判断是否有和去除.exe相同的文件 有的话就填上.exe for(i=0;i<mark-1;i++) for(j=0;j<mark-1-i;j++) { if(strcmp(s3[j],s3[j+1])>0) { strcpy(tmp,s3[j]); strcpy(s3[j],s3[j+1]); strcpy(s3[j+1],tmp); } } //排序 for(i=0;i<mark;i++){ puts(s3[i]); } flag=0;mark=0; } return 0; }运行的时候结果一样,可是前一个AC后一个WA