测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A21979. 下面的函数selectTopK()实现从n个学生中选出前k名成绩最好的学生颁发奖学金(不需要对所有学生完全排序,只需要找出前k名),则横线上应填写( )。struct Student { string name; int score; }; void selectTopK(Student students[], int n, int k) { for (int i = 0; i < k; i++…

单选题 较难

题目描述

下面的函数selectTopK()实现从n个学生中选出前k名成绩最好的学生颁发奖学金(不需要对所有学生完全排序,只需要找出前k名),则横线上应填写(    )。

struct Student {
    string name;
    int score;
};

void selectTopK(Student students[], int n, int k) {
    for (int i = 0; i < k; i++) {
        int maxIdx = i;
        for (____________) {  // 在此处填入代码
            if (students[j].score > students[maxIdx].score) {
                maxIdx = j;
            }
        }
        
        if (maxIdx!= i) {
            Student temp = students[i];
            students[i] = students[maxIdx];
            students[maxIdx] = temp;
        }
    }
}

选项(单选)

上一题 下一题