#include
#include
#include
#define N 16
int main()
{
int a,b,c,d,e=0,f;
char arr[1001][N];
while(scanf("%d",&a)!=EOF&&a!=0)
{
e=0;
getchar();
for(b=0;b scanf("%s",arr[b]);
for(b=0;b
d=1;
for(c=b+1;c if(strcmp(arr[b],arr[c])==0)
d++;
if(d>e)
{
e=d;
f=b;
}
}
printf("%s\n",arr[f]);
}
return 0;
}
这是我根据你的思路给你修改后的代码。整体的思想是没错的,但是你这个算法还是有些浪费时间。一个很小的漏洞 就是e的初始化,你只是在一开始初始化为0,而没有在每次输入时初始化。你应该学会调试,很好用的,不对就调试。