PTA 7-2 4102 气球升起来

又到一年竞赛时,每当看到气球升起来,是多么令人兴奋呀。告诉你一个秘密,裁判总是热衷于猜哪题是最流行的题。比赛结束后,只要统计一下所有的气球颜色就能得到答案。
今年,他们决定把这个工作留给你来完成。

输入格式:

输入包括多组测试样例,每个测试数据都是以数字N开始 (0 < N <= 1000) ,它标识分发的气球总数。接下来的N行就是不同颜色的气球,气球颜色是一个不超过15个字符的字符串。
当N=0时表示输入结束。

输出格式:

对于每组数据,输出最流行的问题对应的颜色。这里保证每个测试数据只会有一个答案。

输入样例:

5
green
red
blue
red
red
3
pink
orange
pink
0

输出样例:

red
pink

解题代码:

#include <stdio.h>
#include <string.h>
struct colour
{
	char store[1000];
}c[1000];
int main()
{
	int i,j,k,m,max,b[1000],t,mark;
	char a[16];
	while(scanf("%d",&m)!=EOF)
	{
		if(m==0)
			break;
        memset(c,0,sizeof(c));
		scanf("%s",a);
		for(i=1,k=0,strcpy(c[0].store,a),b[0]=1;i<m;i++)
		{
			scanf("%s",a);
			for(j=0,mark=1;j<=k;j++)
				if(strcmp(c[j].store,a)==0)
				{
					b[j]++;
					mark=0;
				}
			if(mark)
			{
				k++;
				strcpy(c[k].store,a);
				b[k]=1;
			}
		}
		for(i=0,t=0,max=b[0];i<=k;i++)
			if(max<b[i])
			{
				max=b[i];
				t=i;
			}
		printf("%s\n",c[t].store);
	}
	return 0;
}

知识点简述——结构体:

1.结构体声明的一般形式

struct  结构体名称{
成员列表
};

struct colour //结构体 结构体名称
{
	char store[1000];
}c[1000]; //结构体变量的定义

2.结构体变量定义的一般形式 

struct  结构体名  结构体变量名

在本题目的解答中,将结构体变量的定义跟在了结构体声明后面,简化了代码

但要注意的是:这样的定义虽然简便,但是后续不可以再定义新的结构体变量了

3.访问结构体成员的一般形式

结构体变量名.成员名

strcpy(c[k].store,a); //用此形式访问结构体

猜你喜欢

转载自blog.csdn.net/weixin_63249578/article/details/128733806
今日推荐