用一组一维数组存储学号和成绩,然后,按照成绩排序输出
输入描述:
输入第一行包括一个整数N(1<=N<=100),代表学生个数。
接下来的N行,每行包括两个整数p和q,分别代表每个学生的学号和成绩
输出描述
按照学生成绩从小到大排序,并将排序后的学生信息打印出来,如果学生成绩相同,按照学号大小进行从小到大排序
主要学习两列如何排序
3 1 90 2 87 3 92
2 87 1 90 3 92
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; struct student{ int num; int score; }; bool cmp(const student& a,const student& b) { if(a.score<b.score) return true; else if(a.score==b.score && a.num<b.num) return true; return false; } int main() { int n; cin>>n; vector<student> table(n); for(int i=0;i<n;i++) { cin>>table[i].num>>table[i].score; } sort(table.begin(),table.end(),cmp); for(int i=0;i<n;i++) cout<<table[i].num<<" "<<table[i].score<<endl; return 0; }
全部评论
(0) 回帖