压力这一块 2024-12-04 22:02 采纳率: 75%
浏览 8
已结题

求解(内部题切勿私自转发)

img

img

img

img


内部题切勿私自转发,如需转发请告知作者,如违背后果自负,万分感谢各位的帮助

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这是一个整理表单的问题,需要去除重复的信息并整合成一个新的表单。具体地,你需要从文件中读取输入的表单,然后按照专精、编号、人名的顺序排序并输出。以下是解决这个问题的C++代码示例:

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <algorithm>
    #include <string>
    
    using namespace std;
    
    struct Info {
        string name;
        string id;
        string skill;
    };
    
    bool compareInfo(const Info& a, const Info& b) {
        if (a.skill != b.skill) return a.skill < b.skill;
        if (a.id != b.id) return a.id < b.id;
        return a.name < b.name;
    }
    
    int main() {
        ifstream fin("gloam.in");
        ofstream fout("gloam.out");
        int n;
        fin >> n;
        vector<Info> infos;
        for (int i = 0; i < n; ++i) {
            int Ai;
            fin >> Ai;
            for (int j = 0; j < Ai; ++j) {
                string name, id, skill;
                fin >> name >> id >> skill;
                infos.push_back({name, id, skill});
            }
        }
        sort(infos.begin(), infos.end(), compareInfo);
        for (const auto& info : infos) {
            fout << info.name << " " << info.id << " " << info.skill << endl;
        }
        fin.close(); fout.close();
        return 0;
    }
    

    代码的主要思路是:首先读取输入文件中的数据,存储在一个结构体数组中。然后按照题目要求的顺序对结构体数组进行排序,最后输出排序后的结果到输出文件中。这里使用了STL中的ifstreamofstream来进行文件的读写操作,使用了结构体来存储每条信息,使用了sort函数进行排序操作。注意这里使用了自定义的比较函数compareInfo来进行排序。

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

报告相同问题?

问题事件

  • 系统已结题 12月14日
  • 已采纳回答 12月6日
  • 创建了问题 12月4日