赞
踩
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<bits/stdc++.h>
-
- using namespace std;
- struct Node
- {
- string name;
- int scoreAll;
- int score_yu;
- int score_shu;
- int score_ying;
- }p[101];
-
- bool MAX_MIN(Node p_begin,Node p_end)
- {
- if(p_begin.scoreAll!=p_end.scoreAll)
- return p_begin.scoreAll>p_end.scoreAll;
- else if(p_begin.score_yu!=p_end.score_yu)
- return p_begin.score_yu>p_end.score_yu;
- else if(p_begin.score_shu!=p_end.score_shu)
- return p_begin.score_shu>p_end.score_shu;
-
- }
-
- int main()
- {
- int n;
- cin>>n;
- for(int i = 0;i < n;i++)
- {
- cin>>p[i].name>>p[i].scoreAll>>p[i].score_yu>>p[i].score_shu>>p[i].score_ying;
- }
- sort(p,p+n,MAX_MIN);
- for(int i = 0;i < n;i++)
- {
- cout<<p[i].name<<" "<<p[i].scoreAll<<" "<<p[i].score_yu
- <<" "<<p[i].score_shu<<" "<<p[i].score_ying<<endl;
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。