题目描述
现在有 𝑛(𝑛≤1000)n(n≤1000) 位评委给选手打分,分值从 00 到 1010。需要去掉一个最高分,去掉一个最低分(如果有多个最高或者最低分,也只需要去掉一个),剩下的评分的平均数就是这位选手的得分。现在输入评委人数和他们的打分,请输出选手的最后得分,精确到 22 位小数。
输入格式
第一行输入一个正整数 𝑛n,表示有 𝑛n 个评委。
第二行输入 𝑛n 个正整数,第 𝑖i 个正整数表示第 𝑖i 个评委打出的分值。
输出格式
输出一行一个两位小数,表示选手的最后得分。
输入输出样例
输入 #1复制
5 9 5 6 8 9
输出 #1复制
7.67
说明/提示
数据保证,3≤𝑛≤10003≤n≤1000,每个评委打出的分值为为 00 到 1010(含 00 与 1010)之间的整数。
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
bool cmp(int A, int B) {
return A < B;
}
int main() {
int arr[1001], n; cin >> n;
int number = 0;
float avg;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
sort(arr, arr + n, cmp);
for (int i = 1; i < n - 1; i++) {
number += arr[i];
}
avg = (number * 1.0) / (n - 2);
printf("%.2f", avg);
return 0;
}