zoukankan      html  css  js  c++  java
  • 成绩排序

    先依据学生学号排序,再依据成绩排序

    题目描述

    用一维数组存储学号和成绩,然后,按成绩排序输出。

    输入描述:

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

    输出描述:

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

    分析:

    这是一个排序的稳定性问题只要先按学号排好序,再选择一个稳定排序对成绩排序即可。

    #include <iostream>
    
    using namespace std;
    
    struct student{
        int id;
        int grade;
    };
    
    int main() {
        student A[100];
        int n;
        while(cin >> n) {
            //int id, grade;
            for(int i = 0; i < n; i++) {
                cin >> A[i].id >> A[i].grade;
            }
            
            for(int i = 0; i < n - 1; i++)
                for(int j = 0; j < n - i - 1; j++){
                    if(A[j].id > A[j + 1].id) {
                        student temp;
                        temp.id = A[j].id;
                        A[j].id = A[j + 1].id;
                        A[j + 1].id = temp.id;
                        temp.grade = A[j].grade;
                        A[j].grade = A[j + 1].grade;
                        A[j + 1].grade = temp.grade;
                    }
                }
            for(int i = 0; i < n - 1; i++)
                for(int j = 0; j < n - i - 1; j++){
                    if(A[j].grade > A[j + 1].grade) {
                        student temp;
                        temp.id = A[j].id;
                        A[j].id = A[j + 1].id;
                        A[j + 1].id = temp.id;
                        temp.grade = A[j].grade;
                        A[j].grade = A[j + 1].grade;
                        A[j + 1].grade = temp.grade;
                    }
                }
            
            for(int i = 0; i < n; i++){
                
                cout << A[i].id << " " << A[i].grade << endl;
            }
            
        }
        return 0;
    }
    
  • 相关阅读:
    指针
    使用函数
    数组,切片和字典
    CUDA 进阶学习
    makefile 常用函数
    内存(RAM或ROM)和FLASH存储的真正区别总结
    射频,系带,调制解调器
    固态激光雷达
    毫米波雷达
    对比感知技术的硬件或者算法的关键技术指标
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10198748.html
Copyright © 2011-2022 走看看