在一些比赛会有若干个评委给选手打分,评分规则是在评委给出的若干个分数中去掉一个最高分和一个最低分再计算平均分为选手得分,现在就让你写一个程序来代替这个复杂的工作吧。 输入格式为第一行输入一个整数n(3<=n<=20)为给出的分数个数,第二行给出n个大于等于0小于等于100的实数为分数。 输出格式为在一行分别输出得分,最低分,最高分。 两个数中间用一个空格分开。 得分四舍五入保留整数部分,最低分和最高分保留一位小数。
时间: 2024-03-15 07:47:51 浏览: 126
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
double scores[n];
double sum = 0, max = 0, min = 100;
// 读入分数,同时计算总分、最高分和最低分
for (int i = 0; i < n; i++) {
scanf("%lf", &scores[i]);
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 计算最终得分
double final_score = (sum - max - min) / (n - 2);
// 输出结果
printf("%d %.1f %.1f", (int)(final_score + 0.5), min, max);
return 0;
}
```
代码解释:
1. 首先读入分数的个数n。
2. 然后利用一个数组scores来存储读入的分数,并且在读入的同时计算总分、最高分和最低分。这里需要注意的是,读入分数时需要使用`%lf`格式化字符来读入双精度浮点数。
3. 根据题目要求,计算最终得分。因为需要去掉一个最高分和一个最低分,所以需要先将总分减去最高分和最低分,再除以剩余分数的个数(n-2)即可得到平均分。
4. 最后输出结果,需要将最终得分四舍五入取整,最低分和最高分保留一位小数。
阅读全文