http://acm.hdu.edu.cn/showproblem.php?pid=1004
#include <stdio.h>
#include <string.h>
struct node{
int count;
char a[1001];
}colors[1001];
int main()
{
int n,i,j,t,count,max;
while (scanf("%d",&n)!=EOF)
{
if (n==0)
break;
max=0;
for (i=0;i<n;i++)
{
scanf ("%s",colors[i].a);
}
for (i=0;i<n-1;i++)
{
colors[i].count=1;
for (j=i+1;j<n;j++)
{
if (strcmp(colors[i].a,colors[j].a)==0)
{
colors[i].count++;
}
if (colors[i].count>max)
{
t=i;
max=colors[i].count;
}
}
}
printf("%s\n",colors[t].a);
}
return 0;
}
开始的时候什么都没想,直接就上一维数组了,解决不了,因为%s就是要用一维数组存放。
后来就想起可以用结构体解决,试了一下,就成功了!