首页 > 其他分享 >7-3 谁考了第k名【数据结构/PTA】

7-3 谁考了第k名【数据结构/PTA】

时间:2024-06-13 18:32:34浏览次数:26  
标签:数据结构 学号 int PTA 学生 score Student 成绩

题目:

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

输入

第一行有两个整数,分别是学生的人数n(1≤n≤10000),和求第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

样例输入

1 1
90788001 67.888

样例输出

90788001 67.888

 参考代码:

#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int id;
    float score;
} Student;

// 比较函数,用于qsort按成绩降序排序
int compare(const void *a, const void *b) 
{
    Student *studentA = (Student *)a;
    Student *studentB = (Student *)b;
    // 按成绩降序排序
    if (studentA->score < studentB->score) return 1;
    else if (studentA->score > studentB->score) return -1;
    else return 0;
}

int main() 
{
    int n, k;
    
    // 读取学生人数和排名k
    scanf("%d %d", &n, &k);
    
    Student students[n];
    
    // 读取每个学生的学号和成绩
    for (int i = 0; i < n; i++) 
    {
        scanf("%d %f", &students[i].id, &students[i].score);
    }
    
    // 使用qsort对学生按成绩进行降序排序
    qsort(students, n, sizeof(Student), compare);

    // 获取第k名的学生(注意k是从1开始的)
    Student kth_student = students[k - 1];
    
    // 输出第k名学生的学号和成绩
    printf("%d %g\n", kth_student.id, kth_student.score);
    
    return 0;
}

标签:数据结构,学号,int,PTA,学生,score,Student,成绩
From: https://blog.csdn.net/2302_79908382/article/details/139661456

相关文章

  • 数据结构习题(快期末了)
    一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。数据的存储结构是数据的逻辑结构的存储映像。数据的物理结构是指数据在计算机内实际的存储形式。算法是对解题方法和步骤的描述。若......
  • ALoRA: Allocating Low-Rank Adaptation for Fine-tuning Large Language Models
    本文是LLM系列文章,针对《ALoRA:AllocatingLow-RankAdaptationforFine-tuningLargeLanguageModels》的翻译。ALoRA:为微调大型语言模型分配低秩自适应摘要1引言2相关工作3方法4实验5结论摘要参数有效微调(PEFT)在大语言模型时代因其有效性和效率而......
  • 【数据结构】【版本1.0】【线性时代】——顺序表
    快乐的流畅:个人主页个人专栏:《算法神殿》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录引言一、顺序表的概念1.1最基础的数据结构:数组1.2数组与顺序表的区别二、静态顺序表三、动态顺序表的模拟实现3.1定义3.2初始化3.3......
  • 算法设计与分析复习题 pta(第3章 分治法)
    7-1魔法优惠券#include<iostream>#include<stdio.h>#include<string.h>intcmp(constvoid*a,constvoid*b){return*(int*)b-*(int*)a;}intmain(){intn;scanf("%d",&n);inti,j;inta[n];memset(......
  • 数据结构复习笔记5.6:哈夫曼编码树
    1.前导概念1.定义:设有n个权值{w1,w2,…,wn},构造一棵有n个叶子结点的二叉树,每个叶子的权值为wi,则wpl最小的二叉树叫哈夫曼树。例子:2.结点的路径长度:从根结点到该结点的路径上的连接数3.树的路径长度:就是树的每个叶⼦结点的路径⻓度之和4.结点的带权路径⻓度:结点的路径⻓......
  • 【Test 66 】 高阶数据结构 二叉搜索树 必会知识点!
    文章目录1.二叉搜索树的概念2.二叉搜索树K模型的代码实现2.1Find()查找的实现2.2Insert()插入的实现2.3InOrder()中序遍历的实现2.4Erase()删除的实现3.二叉搜索树的KV模型4.二叉搜索树的性能分析1.二叉搜索树的概念......
  • iptables - 规则动作
    规则和动作rule(规则)通过定义链和表而形成规则存在内核空间的信息报过滤表中规则指定了原地址,目的地址,传输协议(TCP,UDP,ICMP),服务类型(HTTP,FTP,SMTP)等要求当规则匹配时,就根据规则定义的方法处理(accept-放行,reject-拒绝,drop-丢弃)数据包,如果数据包头......
  • 【力扣真题】3.哈希表|算法真题程序设计数据结构考研保研复试机试面试秋招春招蓝桥杯
    242.有效的字母异位词给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。示例1:输入:s=“anagram”,t=“nagaram”输出:true示例2:输入:s=“rat”,t=“car”输出:false说明:你可以假设字符串只包含小写字母。力扣题目链接思......
  • wimlib API 提供了一系列用于处理 Windows 映像文件(.wim 文件)的函数和数据结构,使开发
    wimlibAPI提供了一系列用于处理Windows映像文件(.wim文件)的函数和数据结构,使开发人员能够在其应用程序中集成对WIM文件的创建、修改和提取功能。以下是一些常见的wimlibAPI:WIM文件的创建和初始化:wimlib_create_new_wim():创建一个新的WIM文件。wimlib_open_wim():......
  • Java数据结构与算法(回溯算法)
    前言回溯算法是一种通过构建问题的解树(或解图)来逐步构建候选解的通用算法。它尝试通过一系列选择来解决问题,选择可能包括移动、添加一个元素到当前解、决定一个解的某部分等。当发现某个选择无法导致一个有效解时,算法会回退(即回溯),撤销该选择,并尝试其他选择。回溯算法通常用于......