东华OJ 90 选票统计

问题描述 :

学生会主席投票选举工作正在举行。本次投票将采用电脑统计选票的方式,当投票选举正式开始后,同学们将排队一 一走到电脑前,投上自己神圣的一票:在电脑前输入一个姓名,然后输入回车表示确认。 

投票结束后显示得票最高的同学姓名,该同学将当选为新一届学生会主席。 

请编程统计投票。

 

 

输入说明 :

输入包含多行,每行是一个由英文字母组成的字符串,表示一个姓名,首尾以及中间都不包含空格。 

参加投票学生的人数不超过100人,每个学生姓名字符串的长度小于20。

由于学生投票时输入的姓名有大写有小写,你在统计时不区分大小写,即"Liming"和"liming"是同一个人。

输出说明 :

输出为一个字符串——当选为学生会主席的学生姓名以及他的票数,中间用一个空格分隔。

输入保证没有两个人并列票数最高。

输出的英文字母全部用小写。

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

struct Student
{
	char name[20];
	int count;
};
int main(){
	char iname[20],input[20];
	struct Student stu[100]={"",0};
	int max=0,i=0,flag=0;
	while(gets(input)){
		for(int m=0;input[m];m++){
			if(input[m]>='A'&&input[m]<='Z')
				input[m]+=32;
		}
		strcpy(iname,input);
		for(int j=0;j<=flag;j++)
		{
			if(strcmp(stu[j].name,iname)==0){
				stu[j].count++;
				break;
			}
		}
		strcpy(stu[flag].name,iname);
		stu[flag].count=1;
		flag++;

	}
	for(int k=0;k<=flag;k++){
		if(stu[k].count>max){
			max=stu[k].count;
			i=k;
		}
	}
	printf("%s %d\n",stu[i].name,stu[i].count);

	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值