我接下来的代码专解这一类题型
学校考试,每一次考试后,每一个人的考试成绩各不相同。已经知道每一个学生的学号, 成绩,求考第k名的学生的学号与成绩。
输入
两个整数n,k。n表示有n个学生,k表示查找考到第k名的成绩
随后的第二开始,到n+1行,每一行输入一个学号跟一个成绩 用空格隔开。
输出
取得k名的学号与成绩 用空格隔开
5 3
123658 99
125987 98
125687 87
589711 97
222222 88
样例输出
589711 97
话不多说上代码
#include<bits/stdc++.h>
using namespace std;
struct haha{
string a;
int b;
};
bool cmp(haha a,haha b)
{
return a.b>b.b;
}
int main()
{
int n,k;
cin>>n>>k;
haha a[n];
for(int i=0;i<n;i++)
cin>>a[i].a>>a[i].b;
sort(a,a+n,cmp);
cout<<a[k-1].a<<" "<<a[k-1].b;
return 0;
}
是不是很简单呢?
接下来我会弄一些代码长一点的题