个人思路是把字符串当做数字看待,来一个冒泡排序,然后记录相同字符串的个数进行比较就好了。自己的代码大概就是这个意思,写的比较菜。
#define maxn 1010
#define min 20
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char col[maxn][min];
char temp[min],col_now[min],col_max[min];
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n==0)
break;
memset(col,0,sizeof(col));
for(int i=0;i<n;++i)
scanf("%s",col[i]);
for(int i=0;i<n-1;++i)
for(int j=0;j<n-i-1;++j)
if(strcmp(col[j],col[j+1])>0)
{
memset(temp,0,sizeof(temp));
strcpy(temp,col[j]);
strcpy(col[j],col[j+1]);
strcpy(col[j+1],temp);
}
int count_now,count_max=0;
for(int i=0;i<n;)
{
int j;
if(i==0)
{
j=0;
strcpy(col_max,col[0]);
while(j<n&&strcmp(col[j],col[0])==0)
{
count_max++;
j++;
}
i++;
}
else
{
j=i;
count_now=0;
strcpy(col_now,col[i]);
while(j<n&&strcmp(col[j],col[i])==0)
{
count_now++;
j++;
}
if(count_now>count_max)
{
strcpy(col_max,col_now);
count_max=count_now;
}
i=j;
}
}
printf("%s\n",col_max);
}
return 0;
}