酷代码 AI
菜单
服务商

世博会志愿者笔试面试分数线划定的 C++ 实现

以下是使用 C++ 实现该问题的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> // 定义选手结构体,包含报名号和笔试成绩 struct Candidate { int id; // 报名号 int score; // 笔试成绩 }; // 自定义比较函数,用于对选手进行排序 bool compare(const Candidate& a, const Candidate& b) { if (a.score != b.score) { return a.score > b.score; // 按成绩从高到低排序 } return a.id < b.id; // 成绩相同,按报名号从小到大排序 } int main() { int n, m; std::cin >> n >> m; // 输入报名选手总数 n 和计划录取人数 m std::vector<Candidate> candidates(n); // 存储所有选手信息 for (int i = 0; i < n; ++i) { std::cin >> candidates[i].id >> candidates[i].score; // 输入每个选手的报名号和成绩 } // 对选手按成绩和报名号排序 std::sort(candidates.begin(), candidates.end(), compare); int line = candidates[int(m * 1.5) - 1].score; // 计算面试分数线 int count = 0; for (int i = 0; i < n; ++i) { if (candidates[i].score >= line) { count++; // 统计进入面试的人数 } } std::cout << line << " " << count << std::endl; // 输出面试分数线和进入面试的人数 // 输出进入面试的选手信息 for (int i = 0; i < count; ++i) { std::cout << candidates[i].id << " " << candidates[i].score << std::endl; } return 0; } ``` ### 代码解释: 1. **结构体定义**:定义了 `Candidate` 结构体,包含选手的报名号 `id` 和笔试成绩 `score`。 2. **比较函数**:`compare` 函数用于对选手进行排序,先按成绩从高到低排序,若成绩相同则按报名号从小到大排序。 3. **输入处理**:读取报名选手总数 `n` 和计划录取人数 `m`,并读取每个选手的报名号和成绩。 4. **排序**:使用 `std::sort` 函数对选手进行排序。 5. **计算分数线和人数**:计算面试分数线,统计进入面试的人数。 6. **输出结果**:输出面试分数线和进入面试的人数,然后输出进入面试的选手信息。 ######[AI问答 | 643点数解答 | 2026-05-24 15:43:31]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]