比特小顽童的得分

比特小顽童的得分 - 题解

A-1055比特小顽童的得分
原题目:http://acm.club/problem/A-1055

题解:http://acm.club/discussion-detail/1458

问题描述

比特小顽童参加了校园歌手大奖赛,评委会给参赛选手打分。选手的得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出比特小顽童的得分。
输入格式:每行的第一个数是 n(2 < n <= 100),表示评委的人数,然后是 n 个评委的打分。
输出格式:对于每组输入数据,输出选手的得分,结果保留 2 位小数,每组输出占一行。

解题思路

  1. 读取输入:首先读取评委人数 n,然后读取 n 个评委的打分进入a数组
  2. 排序处理:将打分进行排序,这样最低分在开头,最高分在末尾
  3. 计算总和:排除第一个(最低分)和最后一个(最高分),计算平均值,并格式输出

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;

int main() {
int ans = 0,a[10000];
int n;
cin >> n;

for(int i = 1;i<=n;i++){
cin >> a[i]; //读取打分
}

sort(a+1,a+n+1); //排序数组

for(int i = 2;i<n;i++){
ans+=a[i];
}

printf("%.2lf",double(ans)/(n-2)); //格式化输出

return 0;
}