C++实现演讲比赛评分计算与输出
### 🔍 思路分析 本题需要实现一个程序,根据输入的评委数量和每个评委的打分,去掉最高分和最低分后计算平均分,并输出剩余的有效评分。具体步骤如下: 1. 读取评委数量 `n`。 2. 读取每个评委的打分并存储在数组中。 3. 对数组进行排序。 4. 计算去掉最高分和最低分后的平均分。 5. 输出平均分和剩余的有效评分。 ### 💻 代码实现 ```cpp #include <iostream> #include <iomanip> #include <algorithm> #include <vector> int main() { int n; std::cin >> n; // 读取评委数量 std::vector<double> scores(n); for (int i = 0; i < n; ++i) { std::cin >> scores[i]; // 读取每个评委的打分 } // 对分数进行排序 std::sort(scores.begin(), scores.end()); double sum = 0; // 计算去掉最高分和最低分后的总分 for (int i = 1; i < n - 1; ++i) { sum += scores[i]; } // 计算平均分 double average = sum / (n - 2); // 输出平均分 std::cout << std::fixed << std::setprecision(1) << average << std::endl; // 输出剩余的有效评分 for (int i = 1; i < n - 1; ++i) { if (i > 1) { std::cout << " "; } std::cout << std::fixed << std::setprecision(1) << scores[i]; } std::cout << std::endl; return 0; } ``` ### 📝 代码解释 1. **输入读取**:使用 `std::cin` 读取评委数量 `n` 和每个评委的打分,并将打分存储在 `std::vector<double>` 中。 2. **排序**:使用 `std::sort` 函数对分数进行排序。 3. **计算平均分**:去掉最高分和最低分后,计算剩余分数的总和,并除以剩余分数的数量得到平均分。 4. **输出结果**:使用 `std::fixed` 和 `std::setprecision(1)` 控制输出的小数位数,先输出平均分,再输出剩余的有效评分。 ### ⚙️ 复杂度分析 - **时间复杂度**:排序操作的时间复杂度为 $O(n log n)$,遍历数组计算总分的时间复杂度为 $O(n)$,因此总的时间复杂度为 $O(n log n)$。 - **空间复杂度**:使用了一个长度为 `n` 的数组来存储分数,因此空间复杂度为 $O(n)$。 ### 🚀 开发建议 - **输入验证**:可以添加输入验证,确保输入的评委数量在 3 到 100 之间,并且每个分数在 0 到 100 之间。 - **异常处理**:可以添加异常处理,当输入不合法时输出错误信息。 - **代码复用**:可以将计算平均分和输出有效评分的逻辑封装成函数,提高代码的复用性。 ######[AI写代码神器 | 760点数解答 | 2026-05-23 20:01:25]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)395
- Java 编程:手把手实现电影信息展示系统之 Movie 类设计(字节豆包 | 456点数解答 | 2024-10-29 10:11:19)149
- 手把手教你:从安居客大连二手房页面精准爬取关键信息!(GPT | 854点数解答 | 2024-11-02 08:56:33)346
- 手把手教你:从安居客大连二手房页面精准爬取关键信息的解析函数(GPT | 792点数解答 | 2024-11-02 08:58:39)313
- 用 BeautifulSoup 和 Xpath 采集微医网高血压专家信息,附示例代码与注意要点!(字节豆包 | 416点数解答 | 2024-11-27 21:00:37)344
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)362
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)108
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)70
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)27
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)25
- C++实现喵际数独锦标赛自动评判系统:快速验证数独解答正确性(字节豆包 | 666点数解答 | 2025-05-16 16:46:31)189
- C++ 实现:根据当前时间和行程耗时计算到达公交站时间(字节豆包 | 588点数解答 | 2025-06-13 16:14:25)132