【TFLSnoi李志帅】第⑥篇文章---排序

制作不易,不喜勿喷,欢迎点赞,转发,投币,收藏(小声

1176:谁考了第k名


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 25055     通过数: 10761

【题目描述】

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

【输入】

第一行有两个整数,分别是学生的人数n1n100n(1≤n≤100),和求第k名学生的k1knk(1≤k≤n)。

其后有nn行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。

【输出】

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

【输入样例】

5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9

【输出样例】

90788004 68.4


——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
满分代码

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     string a[105],y;
 6     double b[105],x;
 7     int m,n;
 8     cin>>m>>n;
 9     for(int i=1;i<=m;i++)
10     {
11         cin>>a[i]>>b[i];
12     }
13     for(int i=2;i<=m;i++)
14     {
15         for(int j=1;j<i;j++)
16         {
17             if(b[i-j+1]>b[i-j])
18             {
19                 x=b[i-j+1];
20                 b[i-j+1]=b[i-j];
21                 b[i-j]=x;
22                 y=a[i-j+1];
23                 a[i-j+1]=a[i-j];
24                 a[i-j]=y;//这道题还可以用sort函数+结构体,sort是个好东西
25             }
26             else
27             break;
28         }
29         
30     }
31     cout<<a[n]<<" "<<b[n];
32     return 0;
33 }

c++中有桶排序,冒泡排序,选择排序等等排序方法,这里用的是冒泡排序

相关网址:https://blog.csdn.net/yszdzjt/article/details/81563627

 点波关注不迷路哦(嘿嘿

原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13531068.html