酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

童程学院举办了一场编程选拔赛。现在同学们的成绩都出来了,负责编程选拔赛的老师需要确定最终选拔赛的获奖名单。老师规定选拔赛前5名获奖。他想要确定一个获奖分数线,所有得分在分数线及以上的同学可以获奖。但是存在一种特殊情况,如果第5名同学的分数与后面的同学相同,大家并列第5名,都可以获奖。请通过程序来解决以上问题,确定获奖分数线和获奖总人数。用函数sort 用c++

```cpp #include <iostream> #include <vector> #include <algorithm> // 确定获奖分数线和获奖人数的函数 void determineWinners(const std::vector<int>& scores) { std::vector<int> sortedScores = scores; std::sort(sortedScores.begin(), sortedScores.end(), std::greater<int>()); // 降序排序 int fifthScore = sortedScores[4]; // 第五名的分数 int winnerCount = 5; for (int i = 5; i < sortedScores.size(); ++i) { if (sortedScores[i] == fifthScore) { ++winnerCount; // 如果分数相同,增加获奖人数 } } std::cout << "获奖分数线: " << fifthScore << std::endl; std::cout << "获奖总人数: " << winnerCount << std::endl; } int main() { std::vector<int> scores = {85, 90, 78, 95, 88, 85, 92}; determineWinners(scores); return 0; } ``` 注意逻辑点: 1. 排序时要确保是降序排序。 2. 比较分数时要注意边界情况。 3. 处理多个并列第五名的情况要准确。 [2025-05-10 14:27:58 | AI写代码神器 | 310点数解答]

相关提问