#include <iostream>
using namespace std;
/********** Begin **********/
//可在此添加所需内容
void Count()
{
//补充代码完成任务
}
/********** End **********/
补全上述代码,要求键盘输入学生人数数和对应的学号和生日日期,输出相同生日学生的学号及生日
#include <iostream>
using namespace std;
/********** Begin **********/
//可在此添加所需内容
void Count()
{
//补充代码完成任务
}
/********** End **********/
补全上述代码,要求键盘输入学生人数数和对应的学号和生日日期,输出相同生日学生的学号及生日
引自免费微信小程序:皆我百晓生
#include <iostream>
#include <vector>
#include <map>
#include <string>
struct Student {
std::string id;
int month;
int day;
};
std::map<std::pair<int, int>, std::vector<std::string>> birthdayMap;
void Count() {
int n;
std::cin >> n;
Student student;
for(int i = 0; i < n; ++i) {
std::cin >> student.id >> student.month >> student.day;
birthdayMap[{student.month, student.day}].push_back(student.id);
}
for(auto& entry : birthdayMap) {
if(entry.second.size() > 1) {
std::cout << entry.first.first << " " << entry.first.second << " ";
for(const auto& id : entry.second) {
std::cout << id << " ";
}
std::cout << std::endl;
}
}
}
int main() {
Count();
return 0;
}
这段代码首先定义了一个Student
结构体,用于存储学生的学号、生日月份和生日日期。然后,定义了一个birthdayMap
,它是一个映射,键是生日(月份和日期),值是一个字符串向量,用于存储具有相同生日的学生学号。
在Count
函数中,首先读取学生总数,然后对于每一个学生,读取其学号、生日月份和日期,并将这些信息添加到birthdayMap
的相应条目中。最后,遍历birthdayMap
,对于每个生日,如果存在多个学生,就输出这些学生的学号。
这个程序满足了题目要求,即找出并输出所有生日相同的学生的学号,并且输出格式符合题目描述。