NEFU-1481 谁考了第k名-排序

NEFU-1481 谁考了第k名-排序

/ 0评 / 1714次 / 0

Description

在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。

Input

第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。 其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。

Output

输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)

Accepted Code

#include <bits/stdc++.h>
using namespace std;
struct $
{
    char ser[20];
    double s;
};
$ stu[105];
bool comp($ a, $ b)
{
    return a.s > b.s;
}
int main()
{
    int n, k;
    cin >> n >> k;
    for (int i = 0;i < n;++i)
    {
        scanf("%s %lf", stu[i].ser, &stu[i].s);
    }
    sort(stu, stu + n, comp);
    printf("%s %g\n", stu[k - 1].ser, stu[k - 1].s);
    return 0;
}

解后反思

%g用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的0。即%g是根据结果自动选择科学记数法还是一般的小数记数法

发表回复

您的电子邮箱地址不会被公开。

你好 No.63712