题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/3f27a0a5a59643a8abf0140b9a8cf1f7
//用一维数组存储学号和成绩,然后按成绩排序输出 //输入的第一行中包括一个整数N(1<=N<=100),它代表学生的个数 //接下来的N行中,每行包括两个整数p和q,分别代表每个学生的学号和成绩 //输出:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来 //如果学生的成绩相同,那么按照学号的大小从小到大排序 #include <cstdio> #include <algorithm> using namespace std; struct Student { int Stu_number; int Stu_grade; };//分号不能省略 bool comp(Student lsh,Student rsh){ //不发生交换的情况 if(lsh.Stu_grade < rsh.Stu_grade){ return true; } else if(lsh.Stu_grade == rsh.Stu_grade&&lsh.Stu_number <rsh.Stu_number){ return true; } else return false; } int main(){ Student arr[100]; int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d",&arr[i].Stu_number,&arr[i].Stu_grade); } sort(arr,arr+n,comp); for(int i=0;i<n;++i){ printf("%d %d\n",arr[i].Stu_number,arr[i].Stu_grade); } }