测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A46337. 谁考了第k名在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。输入第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。 其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。输出输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)样例输入5 390788001 67.8…

填空题 较易

题目描述

谁考了第k名

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

输入

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

输出

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

样例输入

5 3

90788001 67.8

90788002 90.3

90788003 61

90788004 68.4

90788005 73.9

样例输出

90788004 68.4

参考答案

#include <cstdio> #include <algorithm> using namespace std; struct STU{ int id; double score; }stu[101]; bool cmp(STU a,STU b){ return a.score>b.score; } int main(){ int n,k; scanf("%d%d",&n,&k); for(int i=0;i<n;i++){ scanf("%d%lf",&stu[i].id,&stu[i].score); } sort(stu,stu+n,cmp); printf("%d %g",stu[k-1].id,stu[k-1].score); }
上一题 下一题