题解 | #成绩排序#

成绩排序

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);
    }
}

全部评论

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务