谁考了第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<bits/stdc++.h>
using namespace std;

string x[102];double c[102];
int main()
{
	int n,k;cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>x[i]>>c[i];
	for(int i=1;i<n;i++)
		for(int j=i+1;j<=n;j++)
			if(c[i]<c[j])
			{
				x[0]=x[i];x[i]=x[j];x[j]=x[0];
				c[0]=c[i];c[i]=c[j];c[j]=c[0];
			}
	cout<<x[k]<<" ";
	printf("%g",c[k]);

    return 0;
}
原文地址:https://www.cnblogs.com/wuzhenhao/p/13470026.html