核心内容摘要
基于Python的招聘就业系统[python]-计算机毕业设计源码+LW文档
成绩排序⭐️难度简单⭐️类型排序题目题目链接给定学生的成绩单成绩单中包含每个学生的姓名和分数请按照要求将成绩单按成绩从高到低或从低到高的顺序进行重新排列。
对于成绩相同的学生无论以哪种顺序排列都要按照原始成绩单中靠前的学生排列在前的规则处理。
输入格式第一行包含整数 N表示学生个数。
第二行包含一个整数 0 或 1表示排序规则0表示从高到低1表示从低到高。
接下来 N 行每行描述一个学生的信息包含一个长度不超过 10的小写字母构成的字符串表示姓名以及一个范围在 0∼100的整数表示分数。
输出格式输出重新排序后的成绩单。
每行输出一个学生的姓名和成绩用单个空格隔开。
思路定义两个compare函数判断要进行的排序是升序还是降序从而传递不同的参数进sort难点是sort是不稳定排序需要通过一个seq变量的帮助把sort函数改成稳定排序。
题解#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestring.h#includevector// vector不需要.h#includelist#includeset// // 可以用 set 和 multiset#includeunordered_set// 可以用 unordered_set 和 unordered_multimap#includemap// 可以用 map 和 multimap#includeunordered_map// 可以用 unordered_map 和 unordered_multimap#includealgorithmusingnamespacestd;structStudent{charname[10];intscore;intseq;// 用来实现稳定排序};boolcompare0(Student lhs,Student rhs){// 实现降序if(lhs.scorerhs.score){returntrue;}elseif(lhs.scorerhs.scorelhs.seqrhs.seq){// 成绩相等时序号由低到高排序returntrue;}else{returnfalse;}}boolcompare1(Student lhs,Student rhs){// 实现升序if(lhs.scorerhs.score){returntrue;}elseif(lhs.scorerhs.scorelhs.seqrhs.seq){// 成绩相等时序号由低到高排序returntrue;}else{returnfalse;}}intmain(){intn;scanf(%d,n);vectorStudentvec(n);intflag;scanf(%d,flag);// 0降序1升序for(inti0;in;i){scanf(%s%d,vec[i].name,vec[i].score);vec[i].seqi;}if(flag