您的位置:首页 > 其它

2018蓝桥杯培训-STL应用专题-day 1 sort作业题3

2018-02-06 14:38 344 查看
题目描述:

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 Node{
string name;
int sum;
int chi;
int math;
int eng;
}p[100];

bool cmp(Node a,Node b)
{
if(a.sum!=b.sum) return a.sum>b.sum;
else if(a.chi!=b.chi) return a.chi>b.chi;
else if(a.math!=b.math) return a.math>b.math;
else return a.eng>b.eng;
}

int main()
{
int n;
cin>>n;
if(n>0&&n<=100)
{
for(int j=0;j<n;j++)
{
cin>>p[j].name>>p[j].sum>>p[j].chi>>p[j].math>>p[j].eng;
}
sort(p,p+n,cmp);
for(int j=0;j<n;j++)
cout<<p[j].name<<" "<<p[j].sum<<" "<<p[j].chi<<" "<<p[j].math<<" "<<p[j].eng<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: