输出气球里最多的颜色(多解问题)

问题描述:

这里有各种各样的气球,气球的颜色不限,各种颜色的气球数量不限,请求解出最多数量的气球颜色。(可多解)

提示:

输入形式:多样例输入。每个样例先输入一共有n(n<=100)个气球,再逐个输入现有的气球的颜色,规定输入的颜色不能超过9个字符。

输出形式:输出当前样例下最多数量的气球颜色。输出的最多数量的颜色不超过10种。

格式为:输出结果为:(结果分行)

#include<stdio.h>
#include<string.h>

struct balloons
{
	char color[10];
	int number;
}Balloon[100];

int main(void)
{
	int n;
	while(scanf("%d", &n) != EOF && n != 0)
	{
		for(int m = 0; m < n; m++)//初始化每种颜色的数量 
			Balloon[m].number = 0;
		
		for(int i = 0; i < n; i++)//读入字符串 
			scanf("%s", Balloon[i].color);
		
		for(int k = 0; k < n; k++)//统计颜色数量 
		{
			for(int p = 0; p < n; p++)
			{
				if(strcmp(Balloon[k].color, Balloon[p].color) == 0)
					Balloon[k].number++;
			}
		}
		
		int M[10] = {0};
		int max = 0;
		int h = 0;
		for(int j = 0; j < n; j++)//找出最多数量的颜色 
		{
			if(max <= Balloon[j].number)//要等于号 
			{ 
				max = Balloon[j].number;
				M[h++] = j;
			}
		}
		
		printf("输出结果为\n%s\n", Balloon[M[0]].color);
		int ok = 0;
		for(int i = 1; i < h; i++)
		{
			for(int j = 0; j < i; j++)
			{
				if(strcmp(Balloon[M[i]].color, Balloon[M[j]].color) == 0)
					break;
				else if(strcmp(Balloon[M[i]].color, Balloon[M[j]].color) != 0)
				{
					if(j == i - 1)
						printf("%s\n" , Balloon[M[i]].color);
				}
			}
		}
		printf("\n");
	}
	return 0;
}

这里是测试示例:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值