酷代码 AI
菜单

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

```cpp #include <iostream> #include <iomanip> using namespace std; int main() { int n; cin >> n; double scores[100]; for (int i = 0; i < n; i++) { cin >> scores[i]; } // 冒泡排序 for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (scores[j] > scores[j + 1]) { double temp = scores[j]; scores[j] = scores[j + 1]; scores[j + 1] = temp; } } } // 计算有效分数总和 double sum = 0; for (int i = 1; i < n - 1; i++) { sum += scores[i]; } // 计算平均分 double average = sum / (n - 2); // 输出平均分 cout << fixed << setprecision(2) << average << endl; // 输出有效分数 for (int i = 1; i < n - 1; i++) { cout << fixed << setprecision(2) << scores[i]; if (i < n - 2) { cout << " "; } } cout << endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 冒泡排序的内层循环边界条件容易写错,需要确保每次比较相邻元素。 - 计算平均分时要注意除数是否为0,本题n≥3保证了n-2≥1。 - 输出格式要严格符合要求,包括小数位数和空格分隔。 [2026-01-24 15:30:34 | AI写代码神器 | 391点数解答]

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