题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/3f27a0a5a59643a8abf0140b9a8cf1f7

#include <stdio.h>
int main(){
    int number;
    scanf("%d", &number);
    //定义一个student结构体,包含学号和成绩
    struct student{
        int num;
        int grade;
    }student[number];
    //输入学生信息
    for (int i = 0; i < number; ++i) {
        scanf("%d %d", &student[i].num, &student[i].grade);
    }
    //冒泡排序
    struct student temp;
    for (int i = 0; i < number-1; ++i) {
        for (int j = 0; j < number - 1 - i; ++j) {
            if((student[j].grade > student[j+1].grade)
            || ((student[j].grade == student[j+1].grade) && student[j].num > student[j+1].num)){
                temp = student[j];
                student[j] = student[j+1];
                student[j+1] = temp;
            }
        }
    }
    //输出
    for (int i = 0; i < number; ++i) {
        printf("%d %d\n", student[i].num, student[i].grade);
    }
    return 0;
}

全部评论

相关推荐

03-03 23:42
复旦大学 Java
_无论云泥意贯一:把复旦大学放前面,山东大学放后面,并且在两个大学后面标注985(用一些显眼的颜色标注)
点赞 评论 收藏
分享
03-04 07:14
门头沟学院 C++
黑皮白袜臭脚体育生:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务