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

T06 成绩排序

查找和排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。

示例:
jack      70
peter     96
Tom       70
smith     67

从高到低  成绩
peter     96
jack      70
Tom       70
smith     67

从低到高

smith     67

jack      70
Tom      70
peter     96

 

#include<iostream>
#include <iomanip>
#include <algorithm>using namespace std;typedef struct student {string name;int grade;int squeue;
} student;bool compare1(student a, student b) {if (a.grade != b.grade) {return a.grade < b.grade;} else {return a.squeue < b.squeue;}}bool compare2(student a, student b) {if (a.grade != b.grade) {return a.grade > b.grade;} else {return a.squeue < b.squeue;}
}int main() {int n = 0, way = 0;while (::scanf("%d %d", &n, &way) != EOF) {student cla[n];for (int i = 0; i < n; ++i) {cin >> cla[i].name >> cla[i].grade;cla[i].squeue=i;}if (way == 1) {sort(cla, cla + n, compare1);} else {sort(cla, cla + n, compare2);}for (int i = 0; i < n; ++i) {cout << cla[i].name << " " << cla[i].grade << endl;}}return 0;}

 这道题总体不难,只有一个需要注意的细节,只要成绩相同就按照先后顺序来填,所以在编写compare1和compare2函数的时候,对squeue的比较代码是相同的

 

http://www.lryc.cn/news/3162.html

相关文章:

  • 【机器学习】Linear and Nonlinear Regression 线性/非线性回归讲解
  • PyQt5数据库开发1 4.1 SQL Server 2008 R2如何开启数据库的远程连接
  • javassm高校学生评教系统的设计与实现idea msyql
  • 为什么神经网络做不了2次函数拟合,网上的都是骗人的吗?
  • 【Java】Help notes about JAVA
  • 2023北京老博会,北京养老展,第十届中国国际老年产业博览会
  • C++展开模板参数包、函数参数包-(lambda+折叠表达式)
  • 【Spark分布式内存计算框架——Spark Core】7. RDD Checkpoint、外部数据源
  • Connext DDSQoS参考
  • 【正则表达式】获取html代码文本内所有<script>标签内容
  • 有 9 种springMVC常用注解高频使用,来了解下?
  • 【ES6】掌握Promise和利用Promise封装ajax
  • REDIS-持久化方案
  • 五、Java框架之Maven进阶
  • 1.前言【Java面试第三季】
  • 06分支限界法
  • Docker Compose编排
  • Docker进阶 - 11. Docker Compose 编排服务
  • 福利篇2——嵌入式岗位笔试面试资料汇总(含大厂笔试面试真题)
  • [ubuntu]LVM磁盘管理
  • 开源流程引擎Camunda
  • 【PTA Advanced】1155 Heap Paths(C++)
  • Educational Codeforces Round 129 (Rated for Div. 2)
  • [数据库]表的增删改查
  • 分享77个JS菜单导航,总有一款适合您
  • kubernetes -- 核心组件介绍以及组件的运行流程
  • 微信小程序Springboot短视频分享系统
  • 排序算法学习
  • 常见漏洞之 struts2+ jboss
  • leetcode470 用Rand7()实现Rand10()