酷代码 AI
菜单

每次演讲结束后都有n名裁判对他们的表现进行打分,评委数量在3人以上,每个人打出的分数都是一个100以内的小数。为了保证公平,最后的结果是去掉全部评分的最高分和最低分,取平均分,并且还要将剩余的有效评分从低到高输出在屏幕上,提供给观众查看。请你来编写这个程序吧。 【提示】 利用排序函数排序后,可以只把第2到第n-1项求和,并只输出第2到第n-1项。 输入: 共两行。 第一行为一个整数n(3<=n<=100),表示总评委数。 第二行为n个小数,即每个评委打出的分数。 输出: 共两行。 第一行为一个小数,即去掉最高分和最低分后的平均分。(计算结果可能为小数,也可能为整数) 第二行为n-2个小数,即从低到高的有效分数,相邻数字之间用空格隔开。c++。用冒泡法解决。结果末尾不留0

```cpp #include <iostream> #include <iomanip> #include <vector> // 冒泡排序函数 void bubbleSort(std::vector<double>& scores) { int n = scores.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (scores[j] > scores[j + 1]) { double temp = scores[j]; scores[j] = scores[j + 1]; scores[j + 1] = temp; } } } } int main() { int n; std::cin >> n; std::vector<double> scores(n); for (int i = 0; i < n; i++) { std::cin >> scores[i]; } bubbleSort(scores); 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); std::cout << average << std::endl; for (int i = 1; i < n - 1; i++) { if (i > 1) { std::cout << " "; } std::cout << scores[i]; } std::cout << std::endl; return 0; } ``` [2026-01-24 15:48:03 | AI问答 | 361点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多