【ACM】杭电OJ 1004

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN___CSDN/article/details/82933456

 题目链接:杭电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;
}

猜你喜欢

转载自blog.csdn.net/CSDN___CSDN/article/details/82933456