IBM技术俱乐部主席竞选

                                                            IBM技术俱乐部主席竞选

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 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\n",can[b].name);
    }
}

起初b值没初始化,总是运行时错误,后来看到自己把每个can对象的count值初始化为0还有把每次加count的值搞错了,==是不是错误很多==,弱菜求轻喷,把count值初始为1,外加判断,最后是b值,应该就可以AC了。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-04-12 00:27  Tob__yuhong  阅读(106)  评论(0编辑  收藏  举报

导航