2301_79594448 2024-10-02 19:24 采纳率: 56.5%
浏览 0
已结题

要用c++求解一次过

题目描述
输入n个学生的语文和数学成绩,对他们先按语文成绩从高到低排序,语文成绩相同再按数学成绩从高到低排序。要求不用结构体和sort函数,而是采用冒泡排序法、插入排序法或选择排序法实现。
输入描述
输入数据第一行为正整数n,表示学生人数,n≤100。接下来有n行,每行有2个分数,范围为0~100,用空格隔开。
输出描述
输出n行,为排序后的n个学生的语文和数学成绩。
样例
输入

5
91 95
86 89
91 84
85 79
99 75
输出

99 75
91 95
91 84
86 89
85 79
时间限制
1000MS
空间限制
128MB
用c++

  • 写回答

2条回答 默认 最新

  • 趣享先生 优质创作者: 编程框架技术领域 2024-10-02 19:58
    关注

    我帮你写了下,完整代码如下:(答题不易,还请采纳)

    
    #include <iostream>
    using namespace std;
    
    void bubbleSort(int arr[][2], int n) {
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j][0] < arr[j + 1][0] || (arr[j][0] == arr[j + 1][0] && arr[j][1] < arr[j + 1][1])) {
                    swap(arr[j], arr[j + 1]);
                }
            }
        }
    }
    
    int main() {
        int n;
        cin >> n;
        int scores[n][2];
    
        for (int i = 0; i < n; i++) {
            cin >> scores[i][0] >> scores[i][1];
        }
    
        bubbleSort(scores, n);
    
        for (int i = 0; i < n; i++) {
            cout << scores[i][0] << " " << scores[i][1] << endl;
        }
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月10日
  • 已采纳回答 10月2日
  • 创建了问题 10月2日