美文网首页
成绩排序

成绩排序

作者: JuGyang | 来源:发表于2019-01-29 11:09 被阅读0次

    题目链接
    题目描述
    用一维数组存储学号和成绩,然后,按成绩排序输出。

    输入描述
    输入第一行包括一个整数N(1<=N<=100),代表学生的个数。
    接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。

    输出描述
    按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。
    如果学生的成绩相同,则按照学号的大小进行从小到大排序。

    示例1

    3
    1 90
    2 87
    3 92
    
    2 87
    1 90
    3 92
    

    代码实现

    #include <stdio.h>
    #include <algorithm>
    
    using namespace std;
    
    struct STUDENT {
        int no;
        int score;
        bool operator < (const STUDENT &b) const {
            if (score != b.score) return score < b.score;
            else return no < b.no;
        }
    }buf[100];
    
    int main(void) {
        int n = 0;
        while (scanf("%d", &n) != EOF) {
            for (int i = 0; i < n; i++) {
                scanf("%d%d", &buf[i].no, &buf[i].score);
            }
            sort(buf, buf + n);
            for (int i = 0; i < n; i++) {
                printf("%d %d\n" ,buf[i].no, buf[i].score);
            }
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:成绩排序

          本文链接:https://www.haomeiwen.com/subject/zrztsqtx.html