简单统计

/*给出n个不同的奖项(n<=100),每个奖项一共有mi(mi<=10)个提名,所有的提名都是电影名字,
  要求找出提名最多的电影名字,并且输出该电影名字。*/
/*
Sample Input:
2	//2个奖项
VISUAL_EFFECTS	//奖项名称
3	//该奖项有3个提名
THE_LORD_OF_THE_RINGS:_THE_TWO_TOWERS //电影名称,长度不超过80
SPIDER-MAN	//电影名称,长度不超过80
STAR_WARS_EPISODE_II_ATTACK_OF_THE_CLONES	//电影名称,长度不超过80
SOUND_EDITING	//奖项名称
3	//该奖项有3个提名
THE_LORD_OF_THE_RINGS:_THE_TWO_TOWERS
MINORITY_REPORT
ROAD_TO_PERDITION
0	//结束输入


Output for the Sample Input:
THE_LORD_OF_THE_RINGS:_THE_TWO_TOWERS //提名最多的电影输出

*/

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

char movie_name[1000][100]={0}; //电影名称最多100*10个mei,每个名称最长不超过100
int movie_count[1000]={0}; //记录提名电影个数
static int name_num = 0; //记录提名电影总数

//记录电影信息
void count_movie_name(const char *s)
{
	int i;
	for (i=0; i<name_num; ++i)
	{
		if (strcmp(movie_name[i], s)==0)
		{
			movie_count[i]++;
			return;
		}
		
	}

	strcpy(movie_name[i], s);
	movie_count[i]++;
	name_num++;
		
	
	
}

int main()
{
	int n = 0; //奖项个数 
	int d = 0; //该奖项提名电影个数
	int flag = 0; //找到提名最多电影标志
	int num=0; //记录奖项个数
	int i = 0;
	int k = 0;
	char s[100]={0};

	printf("\n输入这次电影奖项的个数:");
	while (scanf("%d", &n), n>0)
	{
		getchar(); //过滤掉回车键
		num = n;
		while (n--)
		{
			printf("\n输入第%d项奖项名称:",num-n);
			
			gets(s);
			
			printf("\n输入获得%s奖项提名电影个数:", s);
			scanf("%d", &d);
			getchar(); //过滤掉回车键

			printf("\n输入获得%s奖项提名电影的名称:\n", s);
			for (i=0; i<d; ++i)
			{			
				gets(s);
				count_movie_name(s);
			}
		}

		printf("\n输入0结束:");
		
	}
	
	printf("\n获得提名最多的电影是:\n");
	for (k=0; k<num; ++k)
	{
		for (i=0; i<name_num; ++i)
		{
			if (movie_count[i]==num-k)
			{	
				flag = 1;
				
				printf("%s\n", movie_name[i]);	
			}		
			
		}

		if (flag==1)
		{
			return 0;
		}
	}
	
	return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值