Problem Description
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
Input
输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。
Output
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
Sample Input
3 99 98 97
4 100 99 98 97
Sample Output
98.00 98.50
#include <stdio.h>
int main()
{
int a;
while (scanf("%d", &a) != EOF)
{
double c = 0;
int b, max = 0, min = 1000;
for (int i = 0; i < a; i++)
{
scanf("%d", &b);
c += b;
if (b > max)
max = b;
else if (b < min)
min = b;
}
c -= max;
c -= min;
c /= (a - 2);
printf("%.2lf\n", c);
}
return 0;
}
本题主要注意如何找到最高分与最低分,且在最后计算平均值时也需注意应减去打出最高分与最低分的评委,因此在最后评委总人数减去2,其中本代码中的min=1000可更改,但需保证大于题目中可能出现的最高分。