奖学金问题

每个学年结束,我们学校都要评奖学金,奖学金的评定依据是综合成绩的排名,但因为能够获得奖学金的人是有限的,具体有多少学生能够获得奖学金是按照规定的比例算出的,请你写一个程序帮着老师算算,但今天不是请你计算人数的,是请你计算能够获得奖学金的学生的最低成绩的。给你学生人数n(n正整数)、以及n个学生的综合成绩(精确到小数点后2位,介于0和100之间)以及能够获得奖学金的人数比例k(k正整数,表示能够获得奖学金的学生人数不能超过k%),请你算出能够获得奖学金的学生的最低成绩。

注意:获奖人数必定大于0

Input

共三行,第一行是正整数n,第二行是n个实数,第三行是正整数k。 (n <= 1000)

Output

输出共一行,即能够获得奖学金的学生的最低成绩。

Sample Input

10
75.67 89.18 65.73 91.40 89.69 77.21 93.24 69.31 80.47 83.91
20

Sample Output

91.40
#include
using namespace std;
int n;
double a[1005],k;
int main() {
    while(~scanf("%d",&n)) {
        for(int i=1; i<=n; i++)scanf("%lf",&a[i]);
        scanf("%lf",&k);
        k/=100;
        int temp=n*k;
        sort(a+1,a+1+n,[](double a,double b) {
            return a>b;
        });
        printf("%.2f\n",a[temp]);
    }
    return 0;
}

你可能感兴趣的:(数据结构与算法)