题目描述
乌索普的老师希望知道班上的信息学尖子生的水平如何。
老师请乌索普帮忙算出班上信息学成绩前K名的平均成绩。
输入
输入共有三行:
第一行:为乌索普所在班级的人数 N(其中1≤N≤30 );
第二行:为 N 个用1个空格隔开的信息学分数(其中分数为700及以内正整数);
第三行:老师想计算平均数的尖子生人数 。
输出
输出一行共一个实数,为信息学分数前 K 名同学的分数平均数。
结果保留两位小数
样例输入1
10
93 85 77 68 59 100 43 94 75 82
4
样例输出1
93.00
#include<iostream>
using namespace std;
#include<algorithm>
#include<cstdio>
bool cmp(int a, int b) {
return a > b;
}
int main() {
int n;
cin >> n;
int a[35];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int m;
cin >> m;
sort(a, a + n,cmp);
int sum = 0;
for (int i = 0; i < m;i++) {
sum += a[i];
}
printf("%.2f\n", 1.0 * sum / m);
return 0;
}