2022届计算机学院学生会主席选举:C++代码实现投票统计

计算机学院2022届学生会主席投票选举将于5月6日在教学楼的甲举行。本次投票将采用电脑统计选票的方式,同学们将排队一一到电脑前,投自己心仪的一票:在电脑前输入一个姓名,然后输入回车表示确认。

当所有同学投票结束,工作人员只需输入一个'#'回车确认,表示投票结束,电脑立即显示得票最多的同学姓名,该同学将当选为新一届计算机与通信工程学院学生会主席。假定输入的姓名均为主。

选举委员会的准备工作正在紧张进行,编程统计投票的代码就交给你了!

本题为单实例测试。输入包含多行,每行是一个由中文字符和英文字符组成的字符串,表示一个姓名,遇到 '#' 表示输入结束。

你可以假定,参加投票的学生人数不超过100人,每个学生姓名字符长度不超过20。

输出为一个字符串,表示当选学生会主席的学生姓名。

C++代码实现

由于本题是单实例测试,因此直接给出C++代码如下:

#include <iostream>
#include <string>
#include <map>
using namespace std;

int main() {
    map<string, int> votes; // 使用map记录每个姓名的得票数
    string name;
    while (getline(cin, name)) { // 循环读入每个姓名
        if (name == "#" ) break; // 遇到#结束输入
        votes[name]++; // 给该姓名的得票数加1
    }
    int max_vote = 0; // 初始化最大得票数为0
    string max_name; // 初始化最大得票数对应的姓名为空字符串
    for (auto p : votes) { // 遍历所有得票数
        if (p.second > max_vote) { // 如果当前得票数比最大得票数还大
            max_vote = p.second; // 更新最大得票数
            max_name = p.first; // 更新最大得票数对应的姓名
        }
    }
    cout << max_name << endl; // 输出得票最多的姓名
    return 0;
}

原文地址: http://www.cveoy.top/t/topic/ojJa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录