排序入门练习题3 谁考了第k名 题解
题目出处:《信息学奥赛一本通》第二章 上机练习1
题目描述
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名的学生的学号和成绩。
输入格式
输入的第一行包含两个整数,分别是学生的人数 \(n(1 \le n \le 1000)\) ,和求第 \(k\) 名学生的 \(k(1 \le k \le n)\) 。
接下来 \(n\) 行,每行包含一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出格式
输出第 \(k\) 名学生的学号和成绩,中间用空格分隔,成绩请保留 \(2\) 位小数。
样例输入
5 3
9525 90.5
9526 100
9527 55.2
9528 60.13
9529 70.23
样例输出
9529 70.23
题目分析
首先我们需要开一个结构体来表示学生,并在定义的同时初始化一个结构体数组 a:
struct Student {
int id; // id表示学号
double point; // point表示分数
} a[1001];
然后因为我们需要按照成绩从高到低排序,所以我们需要写一个比较函数用于按照成绩从高到低排序:
bool cmp(Student a, Student b) {
return a.point > b.point;
}
然后我们就可以使用 sort 函数对学生进行排序,并输出第 \(k\) 名学生的信息了。
实现代码如下:
#include <bits/stdc++.h>
using namespace std;
struct Student {
int id; // id表示学号
double point; // point表示分数
} a[1001];
int n, k;
bool cmp(Student a, Student b) {
return a.point > b.point;
}
int main() {
cin >> n >> k;
for (int i = 0; i < n; i ++) cin >> a[i].id >> a[i].point;
sort(a, a+n, cmp);
printf("%d %.2lf\n", a[k-1].id, a[k-1].point);
return 0;
}
注意,因为我们程序中的数组 a 的坐标是从0开始的,所以它的第k好的学生的信息是保存在 a[k-1] 中的。
排序入门练习题3 谁考了第k名 题解的更多相关文章
- openJudge计算概论-谁考了第k名
/*===================================== 谁考了第k名 总时间限制: 1000ms 内存限制: 65536kB 描述 在一次考试中,每个学生的成绩都不相同,现知道 ...
- 01:谁考了第k名 个人博客:doubleq.win
个人博客:doubleq.win 01:谁考了第k名 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的 ...
- Openjudge-计算概论(A)-谁考了第k名
描述: 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩. 输入第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n). ...
- 谁考了第k名
题目描述: 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩. 输入: 第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k ...
- python入门练习题1
常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...
- (私人收藏)python学习(游戏、爬虫、排序、练习题、错误总结)
python学习(游戏.爬虫.排序.练习题.错误总结) https://pan.baidu.com/s/1dPzSoZdULHElKvb57kuKSgl7bz python100经典练习题python ...
- HTML-参考手册: HTML 颜色名
ylbtech-HTML-参考手册: HTML 颜色名 1.返回顶部 1. HTML 颜色名 目前所有浏览器都支持以下颜色名. 141个颜色名称是在HTML和CSS颜色规范定义的(17标准颜色,再加1 ...
- C语言入门100题,考算法的居多
入门题,考算法的居多,共同学习! 1. 编程,统计在所输入的50个实数中有多少个正数.多少个负数.多少个零. 2. 编程,计算并输出方程X2+Y2=1989的所有整数解. 3. 编程,输入一个10进制 ...
- HDU 1285 经典拓扑排序入门题
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
随机推荐
- 【win】【qt5安装】【qt5.5.1安装及第一个示例make错误】
[前言] 昨天按照需求将qt程序从linux系统移植到win上使用(其实有点缪论了,本人linux用的中标麒麟系统对于发布发布系统版本麒麟(注:以下用麒麟代替中标麒麟,什么银河麒麟,优麒麟的,我现在只 ...
- (七)c#Winform自定义控件-进度条
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- 逛公园[NOIP2017 D2 T3](dp+spfa)
题目描述 策策同学特别喜欢逛公园. 公园可以看成一张 \(N\)个点\(M\) 条边构成的有向图,且没有自环和重边.其中 1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值,代表策策经过这条 ...
- HTTP2.0的多路复用和HTTP1.X中的长连接复用区别
HTTP/2 多路复用 (Multiplexing) 多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息 HTTP1.1 在HTTP/1.1协议中,浏览器客户端在同一时间,针 ...
- HelloDjango 第 09 篇:让博客支持 Markdown 语法和代码高亮
作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 Markdown 语法来书 ...
- SoapUI使用教程---简介、下载、破解
最近项目中要使用到SoapUI这款测试工具,之前有接触过,但好久没用了,借此机会记录并和大家分享一下. 一.soapui简介 soapui是一款开源测试工具,通过soap/http来检查.调用.实现W ...
- 只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常
## 统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生. 比较通用的返回值格式如下: ```jav ...
- GPU服务器安装NVIDIA驱动以及CUDA
1.安装系统 系统版本: ubuntu16.04.05 LTS 分区要求: /boot 1024M swap 64G / 剩余空间
- MySQL 5.7 的安装历程
mysql5.7零基础入门级的安装教程: 安装环境:Windows 10, 64 位(联想拯救者R720) 安装版本:mysql-5.7.25-winx64 一.下载 1.进入官网 首先,下载MySQ ...
- (一)spring aop的两种配置方式。
sring aop的方式有两种:(1)xml文件配置方式(2)注解的方式实现,我们可以先通过一个demo认识spring aop的实现,然后再对其进行详细的解释. 一.基于注解的springAop配置 ...