芒果芭乐 2024-06-19 16:09 采纳率: 90.2%
浏览 5
已结题

用结构体设计输出相同生日的学生学号和生日日期

img

img


#include <iostream>
using namespace std;
/**********   Begin   **********/

//可在此添加所需内容

void Count()
{
    

    //补充代码完成任务

    
}
/**********   End   **********/

补全上述代码,要求键盘输入学生人数数和对应的学号和生日日期,输出相同生日学生的学号及生日

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-19 16:09
    关注

    引自免费微信小程序:皆我百晓生

    #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,对于每个生日,如果存在多个学生,就输出这些学生的学号。

    这个程序满足了题目要求,即找出并输出所有生日相同的学生的学号,并且输出格式符合题目描述。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 创建了问题 6月19日

悬赏问题

  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?
  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41