IBM技术俱乐部主席竞选
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 613 测试通过 : 240
起初b值没初始化,总是运行时错误,后来看到自己把每个can对象的count值初始化为0还有把每次加count的值搞错了,==是不是错误很多==,弱菜求轻喷,把count值初始为1,外加判断,最后是b值,应该就可以AC了。。。
总提交 : 613 测试通过 : 240
题目描述
今天IBM技术俱乐部举行主席竞选,你的任务是统计谁是得票最多的候选人。
输入
输入数据包含多组测试案例。
每组测试案例由N(0<N<1000)开头,N表示投票总数,后续N行每行包含一个参加主席竞选的候选人代号(多达18个字母或数字),表示得到有效选票。
一个测试案例的N=0表示输入的结束,无需处理。
输出
对于每个测试用例,把得票最多的候选人名字打印在单独一行上。每个测试案例都仅有一种候选得票是最多的。
样例输入
6
young
CS
showtyt
Titan
young
zt
4
M07000315
sed
B07031006
M07000315
0
样例输出
young
M07000315
题目来源
南京邮电大学计算机学院首届ACM程序设计大赛(2009)
实现代码:
#include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> using namespace std; int n,m; struct Candidate { char name[20]; int count; }; int main() { while(scanf("%d",&n)==1&&n!=0) { Candidate *can=new Candidate[n+1]; for(int i=0;i<n;i++){ can[i].count=1; } for(int i=0;i<n;i++){ scanf("%s",&can[i].name); for(int j=0;j<i;j++) if(strcmp(can[i].name,can[j].name)==0) { can[j].count++; } } int max=0,b=0; for(int i=0;i<n;i++) { if(max<can[i].count) { max=can[i].count; b=i; } } printf("%s ",can[b].name); } }
起初b值没初始化,总是运行时错误,后来看到自己把每个can对象的count值初始化为0还有把每次加count的值搞错了,==是不是错误很多==,弱菜求轻喷,把count值初始为1,外加判断,最后是b值,应该就可以AC了。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。