C++实现多级排序
实现功能:期末开始4位同学的成绩,按多级排序,排序规则为:按数学从小到大,如果数学相等,则按语文从大到小排列,如果语文相等,则按英语从小到大排列,如果英语相等,则按历史从大到小排烈
#include "stdafx.h" #include #include #include typedef struct stu { char name[]; int math;//数学 int chinese;//语文 int english;//英语 int history;//历史 }Student; //按照你想排序的方法排序 bool cmp(stu l, stu r) { if (l.math < r.math)//数学从小到大 { return true; } else if (l.math == r.math)//如果数学相等 { if (l.chinese > r.chinese)//按语文从大到小 { return true; } else if (l.chinese == r.chinese)//如果语文相等 { if (l.english < r.english)//按英语从小到大 { return true; } else if (l.english == r.chinese)//如果英语相等 { if (l.history > r.history)//按历史从大到小 { return true; } else if (l.history == r.history) { return false; } } } } return false; } using namespace std; // 小明 73, 80, 86, 79 //小花 77, 78, 60, 90 // 小刚 73, 79, 90, 90 // 小白 77, 78, 40, 89 //排序后 // 小明 73, 80, 86, 79 // 小刚 73, 79, 90, 90 // 小白 77, 78, 40, 89 //小花 77, 78, 60, 90 Student students[] = { { "小明", , , , } , { "小花", , , , } , { "小刚", , , , } , { "小白", , , , } }; int _tmain(int argc, _TCHAR* argv[]) { cout << "排序前:===========================================" << endl; for (Student s : students) { cout << s.name << "" << s.math << "" << s.chinese << "" << s.english << "" << s.history << endl; } sort(students, students + , cmp); cout << "排序后:===========================================" << endl; for (Student s : students) { cout << s.name << "" << s.math << "" << s.chinese << "" << s.english << "" << s.history << endl; } getchar(); return ; }
效果如:
C++实现多级排序的更多相关文章
- python自学笔记(七)排序与多级排序
一.sorted内置方法 a = [1,2,3,4] 从大到小(翻转) a = sorted(a,reverse = True) #生成新对象,不会原地修改,需要重新赋值 print a --> ...
- Python中使用operator模块实现对象的多级排序
Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...
- python list 嵌套 dict 按照字典中的单个key进行单级排序 或 按照多个键进行多级排序
student = [{"no": 1,"score": 90},{"no": 2,"score": 90},{&quo ...
- 用 Python 排序数据的多种方法
用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭 ...
- Python的列表排序
Python的列表排序 本文为转载,源地址为:http://blog.csdn.net/horin153/article/details/7076321 在 Python 中, 当需要对一个 list ...
- python几个排序函数 sort sorted argsort
Python中排序常用到的sort .sorted和argsort函数 [摘要:Python中sort 战 sorted函数 一 .先容 sort函数是list列表中的函数,而 sorted能够对li ...
- ElasticSearch(7)-排序
引用自ElaticSearch权威指南 一.排序 相关性排序 默认情况下,结果集会按照相关性进行排序 -- 相关性越高,排名越靠前. 这一章我们会讲述相关性是什么以及它是如何计算的. 在此之前,我们先 ...
- mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】
1.使用order by对查询的结果进行排序,asc升序,desc降序: 也可以在order by后指定多个字段名和排序方式进行多级排序: 2.使用limit限制查询结果的数量: 上图中的0,代表查询 ...
- .Net中集合排序还可以这么玩
背景: public class StockQuantity { public StockQuantity(string status, DateTime dateTime, int quantity ...
随机推荐
- 相机标定问题-Matlab & Py-Opencv
一.相机标定基本理论 1.相机成像系统介绍 图中总共有4个坐标系: 图像坐标系:Op 坐标表示方法(u,v) Unit:Dots(个) 成像坐标系:Oi ...
- MySql由于编码问题,存储过程执行出错。
在存储过程后面加了一段话.红色部分 DELIMITER $$ USE `mysql_wispeed01-test1`$$ DROP PROCEDURE IF EXISTS `sp_crebillno` ...
- 自己制作一个USB自动挖矿器
先讲下设备效果: 对面坐着一位同事中午去吃饭没锁屏幕,这时候你想用他的电脑去挖矿, 挖矿,当然不可能跑到他的座位上,关掉360然后下载个挖矿软件什么的.... 这时候你只需要花十块钱制作如下设备,然后 ...
- linux仅修改文件夹权限 分别批量修改文件和文件夹权限
比如我想把/var/www/html下的文件全部改成664,文件夹改成775,怎么做呢 方法一: 先把所有文件及文件夹改成664,然后把所有文件夹改成775 chmod -R 664 ./ find ...
- Unity-修改Debug日志文本颜色
Unity开发过程中Debug信息是非常重要的,但是千篇一律的白色字符不能迅速找出想要的信息,添加些字体颜色是个很好的办法,比如: AppDebug.Log("<color=#ff84 ...
- [LeetCode] Buddy Strings 伙计字符串
Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...
- 文件上传控件bootstrap-fileinput的使用
1.插件下载地址:https://github.com/kartik-v/bootstrap-fileinput 2.插件的引用 需要引用jquery 需要结合bootstrap使用,即页面需要引入b ...
- python 中间件
中间件一.什么是中间件 中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django 的输入和输出.每个中间件组件都负责做一些特定的功 ...
- sqlserver 电脑重启以后服务突然无法启动 报错
可能是sql server 评估期已过 在升级中输入产品密钥试试
- 算法与数据结构(五) 普利姆与克鲁斯卡尔的最小生成树(Swift版)
上篇博客我们聊了图的物理存储结构邻接矩阵和邻接链表,然后在此基础上给出了图的深度优先搜索和广度优先搜索.本篇博客就在上一篇博客的基础上进行延伸,也是关于图的.今天博客中主要介绍两种算法,都是关于最小生 ...