题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004
方法:二维数组
思路:用二维数组记录表示颜色的字符串,这是一个比较好的思路,简单,但是可以解决问题,当然也可以用vector,不过二维数组显然是够用了,这种方法应该重视起来。
难点:比较的时候数组下标要从1开始,以便于与前面的字符串比较。
#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char color[1000+10][15+5];
int n;
int i;
while(~scanf("%d",&n))
{
if(n == 0) break;
int num[1000+10] = {0};
for( i = 0;i < n;i++)
scanf("%s",color[i]);
for(i = 1;i < n;i++)
{
for(int j = 0;j < i-1;j++)
{
if(strcmp(color[i],color[j]) == 0)
{
num[i]++;
}
}
}
int maxnum = 0;
int t = 0;
for(i = 0;i < n;i++)
{
if(num[i]>maxnum)
{
maxnum = num[i];
t = i;
}
}
printf("%s\n",color[t]);
}
}