pat 乙级 1004 成绩排名(C++)

题目

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:

每个测试输入包含 1 个测试用例,格式为

第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
… … …
第 n+1 行:第 n 个学生的姓名 学号 成绩

其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

输出格式:

对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

输入样例:

3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95

输出样例:

Mike CS991301
Joe Math990112

分析

提供3种方法

  • 首先,用3个数组分别存储姓名,学号,和成绩,下标一一对应。然后,用两个变量来存储最高成绩与最低成绩。最后,用这两个变量去找对应的姓名与学号。注意输出格式。
  • 首先,用3个数组分别存储姓名,学号,和成绩,下标一一对应。然后对成绩进行排序,同时交换对应的姓名和学号的顺序。最后,输出姓名和学号数组指定变量即可。
  • 首先,用3个变量来接收姓名,学号和成绩。然后,声明6个变量分别表示姓名,学号,最高成绩和姓名,学号,最低成绩,把每一次读入的n个学生成绩拿来比对。

AC代码

#include<iostream>
#include<string>
using namespace std;
int main()
{//方法1/*int i,j,n,max,min;cin>>n;string name[n],sno[n];int grade[n];for(i=0;i<n;i++){cin>>name[i]>>sno[i]>>grade[i];}max=grade[0];min=grade[0];for(i=1;i<n;i++){if(max<grade[i])max=grade[i];if(min>grade[i])min=grade[i];}for(i=0;i<n;i++){if(max==grade[i]){cout<<name[i]<<" "<<sno[i];cout<<endl;} }for(i=0;i<n;i++){if(min==grade[i])cout<<name[i]<<" "<<sno[i];}*///方法2/*for(i=0;i<n;i++)for(j=i+1;j<n;j++){if(grade[i]<grade[j]){int temp=grade[i];grade[i]=grade[j];grade[j]=temp;string temp2=name[i],temp3=sno[i];name[i]=name[j];sno[i]=sno[j];name[j]=temp2;sno[j]=temp3;}    }cout<<name[0]<<" "<<sno[0]<<endl;cout<<name[n-1]<<" "<<sno[n-1];*/ //方法3int i,j,n,max=0,min=100;cin>>n;string max_name,min_name,max_sno,min_sno,name,sno;int grade;for(i=0;i<n;i++){cin>>name>>sno>>grade;if(max<grade){max=grade;max_name=name;max_sno=sno;}if(min>grade){min=grade;min_name=name;min_sno=sno;}}cout<<max_name<<" "<<max_sno<<endl;cout<<min_name<<" "<<min_sno;return 0;
}

比较

  • 前两种方法思路比较清楚,但需要开辟3个数组,消耗内存较大
  • 第三种方法消耗内存不大,但是只能得到最高成绩学生信息和最低成绩学生信息,对于涉及整体学生的操作时,无能为力。
    更多题解
    pat 乙级 题解汇总(持续更新)(C++)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java8 函数式编程_您必须学习Java 8的函数式编程吗?

java8 函数式编程我最近一直在研究Java 8&#xff0c;并掌握了Manning出版的“ Java 8 In Action” 。 让我印象深刻的第一件事是Java 8独特的销售主张是函数式编程。 函数现在是一流的变量&#xff0c;您可以像int或String一样在代码中传递它们。 这是一个很大的变化。 近年来…

Dell笔记本双系统安装(Ubuntu 16.04)

一 参考博客 重点 以上博客在分盘问题中描写不详细&#xff0c;参考右边博客&#xff1a; 有关分盘问题 注意&#xff1a;其中&#xff0c;由于Bios Dell与其余电脑存在区别&#xff0c; 1. 开机按F12&#xff0c;进入BIOS 2.在 BIOS 的Boot菜单下&#xff0c;将Secure Bo…

pat 乙级 1006 换个格式输出整数(C++)

题目 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3位的正整数。 例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 2 个“百”、3 个“十”、以…

Stomp-Spring服务器端的Web套接字Java客户端

问题&#xff1a; 为了分析问题&#xff0c;我不得不编写一个简单的Java Web套接字客户端站点代码&#xff0c;并使用基于stomp的Web套接字代理连接到服务器端基于Spring的应用程序。 解决方案&#xff1a; pom.xml <?xml version"1.0" encoding"UTF-8&qu…

W10更新时间

https://jingyan.baidu.com/article/0aa2237561921088cc0d64f6.html

Selenium Java教程– Selenium中的类名定位器

Selenium中CSS Locator是编写脚本的最重要方面之一。 如果您无法通过使用Selenium中的任何CSS定位器来定位元素&#xff0c;那么精通Selenium自动化将是一项艰巨的任务。 硒提供多种定位元素的方法。 您可以查看有关Selenium中不同CSS定位器的其他文章&#xff0c;这些文章可通…

pat 乙级 1056 组合数的和(C++)

题目 给定 N 个非 0 的个位数字&#xff0c;用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8&#xff0c;则可以组合出&#xff1a;25、28、52、58、82、85&#xff0c;它们的和为330。 输入格式&#xff1a; 输入在…

Tensorflow-gpu的方式

主要参考https://www.jianshu.com/p/9911dee2f00b 主要讲一下在Linux下安装tensorflow gpu版的两种方式&#xff1a;使用conda和pip安装。安装cpu版本比较简单&#xff0c;安装命令相同&#xff0c;但是省去了安装cuda和cudnn。 注意&#xff1a; 在安装tensorflow gpu版本前…

pat 乙级 1016 部分A+B(C++)

题目 正整数 A 的“D​A&#xff08;为 1 位整数&#xff09;部分”定义为由 A 中所有 D​A组成的新整数 P​A。例如&#xff1a;给定 A3862767&#xff0c;DA6&#xff0c;则 A 的“6 部分”P​A是 66&#xff0c;因为 A 中有 2 个 6。现给定 A、D​A、B、DB&#xff0c;请编…

NS3使用过程中重要内容整理

1 ns-3中两个常用的网络分析工具——TcpDump和Wireshark 可以与Wireshark结合,更好的理解数据包的传送过程

C++ floor、ceil、round函数的区别

函数解释 floor函数&#xff0c;向下取整。即向负无穷方向取离传入参数最近的整数ceil函数&#xff0c;向上取整。即向正无穷方向取离传入参数最近的整数round函数&#xff0c;四舍五入。 头文件 C语言&#xff1a;math.hC: cmath 函数原型 double floor(double)double ce…

javamail程序源码_JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器)

javamail程序源码在配置JavaMail时&#xff0c;总是有一种有趣的方法。 基本上&#xff0c;您必须填写无类型的地图或属性结构&#xff0c;并希望获得正确的解释。 网络上无数的教程显示了使其正常工作&#xff08;发送/接收邮件&#xff09;所需的最小属性。 但是&#xff0c…

U盘在Ubuntu20.04下只能读取文件不能向U盘复制文件

背景 U盘在Ubuntu20.04下只能读取文件不能向该U盘复制文件,该U盘在其余电脑上一点问题不存在. Ubuntu系统插入其余U盘也能正确读取,只对该U盘无法处理. 处理过程 在CSDN中找了许多方法&#xff0c;比如这种“三行命令教你解决linux系统下U盘只读文件系统问题”。 但是一点…

C++ 函数参数3种传值方式(以交换两个数为例)

简介 在C中&#xff0c;函数参数的传值方式有传值调用、指针调用和引用调用。接下来&#xff0c;通过一个实例来演示三者区别。 代码 #include <iostream>using namespace std; //传值调用 void Swap(int a,int b) {int tempa;ab;btemp; } //指针调用 void Swap2(int…

删除已弃用的CMS垃圾收集器的JEP草案

在2017年4月10日的文章“ Java垃圾收集器&#xff1a;G1GC何时将CMS强制退出&#xff1f; ”&#xff0c;我讨论了JEP 291 &#xff08;“弃用并发标记扫描&#xff08;CMS&#xff09;垃圾收集器”&#xff09;&#xff0c;并提供了一些赞成和反对弃用&#xff08;并最终淘汰&…

Ubuntu系统中利用Sublime分别运行Python与Python3

背景 两台Ubuntu系统的电脑均使用Sublime&#xff0c;运行相同的代码&#xff0c;出现不同的效果。 经观察&#xff0c;一个Sublime python F5 编译采用的为python3&#xff0c;另一个采用的为python2&#xff08;通过两个版本的print函数不同观察&#xff0c;一个print&…

AWS Lambda事件源映射:使您的触发器混乱无序

最近&#xff0c;我们为Sigma Cloud IDE上的无服务器项目引入了两个新的AWS Lambda事件源&#xff08;触发类型&#xff09;&#xff1a; SQS队列和DynamoDB流 。 &#xff08;是的&#xff0c;AWS在几个月前就向他们介绍了&#xff1b;但是我们仍然是一个很小的团队&#xff0…

pat 乙级 1047 编程团体赛(C++)

题目 编程团体赛的规则为&#xff1a;每个参赛队由若干队员组成&#xff1b;所有队员独立比赛&#xff1b;参赛队的成绩为所有队员的成绩和&#xff1b;成绩最高的队获胜。现给定所有队员的比赛成绩&#xff0c;请你编写程序找出冠军队。 输入格式&#xff1a; 输入第一行给出…

Sublime Text3常用基本操作

1 在每行光标快速移动 光标移动至行首:(home)键&#xff1b;光标移动至行尾:(end)键&#xff1b;(ctrl)(→)是单位性移动光标ctrl shift -> 是选中单位性移动光标 2 快速定位至文件首或尾 window: ctrl home / end mac: cmd ↓全选左 / 右方向键 3 选中一行快捷键 Shi…

pat 乙级 1011 A+B 和 C(C++)

题目 给定区间 [−2​31​​ ,2​31​​ ] 内的 3 个整数 A、B 和 C&#xff0c;请判断 AB 是否大于 C。 输入格式&#xff1a; 输入第 1 行给出正整数 T (≤10)&#xff0c;是测试用例的个数。随后给出 T 组测试用例&#xff0c;每组占一行&#xff0c;顺序给出 A、B 和 C。…