B2158 谁考了第 k 名
欢迎报名洛谷网校,期待和大家一起进步!
本题考察结构体,排序。
我们用一个结构体 Stu 来存储每个学生的信息,包括学号 id(整数)和成绩 sc(浮点数):
struct Stu {
int id;
double sc;
}a[105];
这样,我们可以直接使用 a[i].id 和 a[i].sc 来获取第
题目中,要求出第
参考代码:
for (int i = 1; i <= n - 1; ++i) {
int best = i;
for (int j = i + 1; j <= n; ++j) {
if (a[j].sc > a[best].sc)
best = j;
}
if (best != i) {
Stu tmp = a[i];
a[i] = a[best];
a[best] = tmp;
// 以上 3 行可以简化为 swap(a[i], a[best]),需要 algorithm 头文件。
}
}