又到了班长选举的大日子,学了编程的你,除了上台表演,还希望帮老师解决统计票数这个超级难题,电脑肯定效率高并且不会作弊; 总共有n个同学进行投票,参加选举的同学每人用一个小写英文字母作为代号,投票过程记录为一串字符。如果有两个或者以上的同学得票一样,谁的编号字典序靠前,谁就能当选! 班主任和同学们都想一秒钟知道谁是班长,请你编程统计出答案! c++实现
时间: 2023-06-18 22:05:59 浏览: 121
以下是用C++实现的代码:
```c++
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string votes;
cin >> votes;
map<char, int> vote_count;
for (int i = 0; i < n; i++)
{
vote_count[votes[i]]++;
}
char winner = 'a';
int max_votes = 0;
for (auto p : vote_count)
{
if (p.second > max_votes)
{
max_votes = p.second;
winner = p.first;
}
else if (p.second == max_votes && p.first < winner)
{
winner = p.first;
}
}
cout << winner << endl;
return 0;
}
```
首先读入投票人数和投票记录(以字符串形式给出)。然后使用map数据结构统计每个候选人的得票数。最后遍历map,找到得票最多的候选人,并按照字典序比较,找到最终当选者。