题目链接:杭电OJ 1004
运行环境:Dev-C++ 5.11
思路:
先把先把num数组全部赋值为1;第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的num[i]上加1,最后只要把num数组中最大值的下标i找到,在输出color[i]即可。
#include <stdio.h>
#include <string.h>
int num[1010];
char color[1010][16];
int main()
{
int n,i,j,t,max;
while (scanf("%d", &n) != EOF)
{
memset(num,1,sizeof(num));
if (n == 0) break;
num[0]=0;
scanf("%s",color[1]);
for(i=2;i<=n;i++)
{
scanf("%s",color[i]);
for(j=i-1;j>=1;j--)
{
if(!strcmp(color[j],color[i]))
{
num[i]+=1;
}
}
}
t=0;max=0;
for(i=1;i<=n;i++)
{
if(max<num[i])
{
max=num[i];
t=i;
}
}
printf("%s\n",color[t]);
}
return 0;
}