当前位置: 首页 > news >正文

[结构体]谁考了第k名

 题目描述

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

  输入格式

第一行有两个整数,分别是学生的人数 n(1≤n≤20),和求第k名学生的 k(1≤k≤n)。
其后有 n 行数据,每行包括一个姓名(字符串)和一个成绩(整数),中间用一个空格分隔。

  输出格式

输出第 k 名学生的姓名和成绩,中间用空格分隔。

 样例

  样例输入

4 1
Kitty 80
Hanmeimei 90
Joey 92
Tim 28

  样例输出

Joey 92

 解!!!!

  思路如下:

该题的解题思路是使用结构体数组存储学生的姓名和成绩,然后根据成绩进行排序,最后输出第k名学生的姓名和成绩。

首先,定义一个struct结构体,用来存储学生的姓名和成绩。

struct cou{string name;int hoppy;
};

然后,读入学生的人数和要求的第k名学生的k值。

int a,k;
cin>>a>>k;

接下来,使用一个循环读入每个学生的姓名和成绩,并存入结构体数组中。

cou arr[a+5];
cou ton;
for(int i=0;i<a;i++)
{cin>>arr[i].name>>arr[i].hoppy;
}

然后,使用冒泡排序算法对结构体数组按照成绩从大到小进行排序。

for(int i=0;i<a;i++)
{for(int j=i+1;j<a;j++){if(arr[j].hoppy>arr[i].hoppy){ton=arr[j];arr[j]=arr[i];arr[i]=ton;}}
}

最后,输出第k名学生的姓名和成绩。

cout<<arr[k-1].name<<" "<<arr[k-1].hoppy<<endl;

这样就完成了求第k名学生的姓名和成绩的操作。

  完整代码

#include<bits/stdc++.h>
using namespace std;
struct cou{string name;int hoppy;
};
int main(){int a,k;cin>>a>>k;cou arr[a+5];cou ton;for(int i=0;i<a;i++){cin>>arr[i].name>>arr[i].hoppy;}for(int i=0;i<a;i++){for(int j=i+1;j<a;j++){if(arr[j].hoppy>arr[i].hoppy){ton=arr[j];arr[j]=arr[i];arr[i]=ton;}}}cout<<arr[k-1].name<<" "<<arr[k-1].hoppy<<endl;return 0;
}

点个赞吧,帅哥美女们,本人为小学生。


http://www.mrgr.cn/news/50936.html

相关文章:

  • k8s 1.28 集群部署
  • 自定义类型:结构体【上】
  • error: cannot find symbol import android.os.SystemProperties;
  • 阐述懒加载?
  • 嵌入式硬件设计
  • shell命令笔记记录
  • 贪吃蛇游戏(代码篇)
  • fork中的死锁问题
  • 【C】分支与循环2--while/for/do-while/goto以及break和continue在不同循环中的辨析~
  • Spring-Bean的实例化和依赖注入方式
  • SAP PP常用功能之 可配置 BOM 的实现(超级BOM)
  • RISC-V笔记——RVWMO基本体
  • Vs配置opencv库 实例,opencv选用4.9.0版本,vs版本是2022社版,学习笔记不断更新
  • Servlet复习
  • 阿拉伯应用市场的特点
  • jetson nano ubuntu20.04安装ros-Noetic
  • 运行Springboot + Vue 项目
  • 【力扣 | SQL题 | 每日3题】力扣2988,569,1132,1158
  • 大健康零售电商AI知识库:优化用户体验的新引擎
  • Linux 命令 —— grep、tail、head、cat、more、less(查看日志常用命令)