【TFLSnoi李志帅】第⑥篇文章---排序
制作不易,不喜勿喷,欢迎点赞,转发,投币,收藏(小声
1176:谁考了第k名
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 25055 通过数: 10761
【题目描述】
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。
【输入】
第一行有两个整数,分别是学生的人数n(1≤n≤100)n(1≤n≤100),和求第k名学生的k(1≤k≤n)k(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
点波关注不迷路哦(嘿嘿