100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > HDUOJ 青年歌手大奖赛_评委会打分

HDUOJ 青年歌手大奖赛_评委会打分

时间:2023-05-12 09:43:52

相关推荐

HDUOJ 青年歌手大奖赛_评委会打分

HDUOJ 青年歌手大奖赛_评委会打分

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

这道题本来想用数组保存输入的分数,然后对数组进行排序,去掉头和尾再算平均分,后来想到了一个时间复杂度更低的方法:定义min和max变量逐个对输入的数据进行比较即可储存最大值和最小值,定义一个变量储存输入的分数累加和,最后减去两个最值即可求出平均分数

在ac过程中遇到了一个常见的问题,在循环体外初始化了变量值和最值,导致第二组数据结果不正确,大家在做题过程中要多加注意这种错误。

Submit

#include<stdio.h>int main() {int n;double s,min,max,avs;while (scanf("%d",&n)!=EOF){min = 101, max = -1,avs=0;for(int i = 0; i < n; i++) {scanf("%lf", &s);if (s < min) min = s;if (s > max) max = s;avs += s;}avs -= (min + max);printf("%.2f\n", avs / (n - 2));}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。