1923: 2018蓝桥杯培训-STL应用专题-day 1 sort作业题3
题目描述:
STL库中有许多非常实用的函数,如sort,set,map,vector,queue等。 此题为sort的应用教学,题目如下: 读入n条学生成绩记录,包括学生姓名,总成绩,语文,数学和英语成绩,要求按总成绩从高到低输出n条记录,每条记录占一行。总成绩相同时按语文成绩从高到低输出,语文成绩相同时按数学成绩从高到低输出。(没有两个人的成绩完全一样)
输入:
第一行读入一个 n ( 0<n<=100) 接下来n行每行读入学生姓名,总成绩,语文,数学和英语成绩,中间以空格隔开
输出:
n行按要求排序好的记录。
样例输入
3 Lsx 270 90 90 90 Ywz 275 92 93 90 Wjx 255 85 85 85
样例输出
Ywz 275 92 93 90 Lsx 270 90 90 90 Wjx 255 85 85 85
#include <iostream>
#include <algorithm>
using namespace std;
struct Student
{
string name;
int sum;
int Chinese;
int Math;
int English;
}student[100];
//总成绩相同时按语文成绩从高到低输出,语文成绩相同时按数学成绩从高到低输出。
//(没有两个人的成绩完全一样)
bool cmp(Student s1, Student s2)
{
if(s1.sum != s2.sum)
{
return s1.sum > s2.sum;
}
else
{
if(s1.Chinese != s2.Chinese)
{
return s1.Chinese > s2.Chinese;
}
else
{
return s1.Math > s2.Math;
}
}
}
int main(int argc, char** argv)
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> student[i].name >>student[i].sum >> student[i].Chinese
>> student[i].Math >> student[i].English;
}
sort(student, student+n, cmp);
for(int i = 0; i < n; i++)
{
cout << student[i].name << " " << student[i].sum << " " << student[i].Chinese <<
" " << student[i].Math << " " << student[i].English << endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)