您的位置:首页 > 其它

IBM技术俱乐部主席竞选

2015-04-12 00:27 204 查看

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了。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: