链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
某年学校举办才艺大赛,评委会给选手们打分。出于公平考虑,每个人的得分规则为去掉一个最高分和一个最低分,然后计算平均分,请输出选手对应的最终得分。
输入描述:
输入数据有多个测试用例,每个占一行,每行的第一个数是n(2<n<=100),代表评委人数,然后是n个评委给的分数。
输出描述:
对于每组输入数据,输出选手的最终得分,结果需要保留2位小数,每组输出占一行。
示例1

题目分析:
这道题主要考察了数组的使用。在解决这道题时,我们需要读入评委的打分并使用数组进行存储,然后找到最高分和最低分,计算去掉最高分和最低分后的总分,并计算平均分。这个过程涉及到了数组的遍历和使用,以及基本的数学计算。同时,由于输入数据有多组,我们需要使用循环来处理每组数据,这也考察了我们对于循环的掌握。在输出时,我们还需要掌握 printf 函数的格式化输出功能,这也是 C 语言中常用的一个技巧。
代码如下:
#include <stdio.h>
int main()
{
int n, score[100];
while (scanf("%d", &n) == 1)
{
int max_score = 0, min_score = 100;
double sum = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &score[i]);
if (score[i] > max_score) max_score = score[i];
if (score[i] < min_score) min_score = score[i];
sum += score[i];
}
sum -= max_score + min_score;
printf("%.2lf\n", sum / (n - 2));
}
return 0;
}