1 条题解
-
0
#include <bits/stdc++.h> using namespace std; // [1] 定义学生结构体,存储学号(m,整数类型)和成绩(s,浮点类型) struct student{ int m; double s; }; int main(){ // [2] n-学生总数(1 < n ≤ 100);k-需要查询的目标名次(1 ≤ k ≤ n) int n,k; // [3] a数组-存储n个学生的信息,1-based索引(方便名次与数组索引直接对应),最多支持101个元素 student a[101]; // [4] 读取学生总数和目标名次 cin >> n >> k; // [5] 循环读取n个学生的学号和成绩,存入数组a for (int i = 1; i <= n;i++){ cin >> a[i].m >> a[i].s; } // [6] 冒泡排序:按成绩降序排列学生数组(成绩高的学生在前,低的在后) for (int i = 1; i < n;i++){ for (int j = i + 1; j <= n;j++){ // [7] 如果前一个学生的成绩小于后一个,交换两者位置,确保降序 if (a[i].s < a[j].s) swap(a[i],a[j]); } } // [8] 输出第k名学生的学号 cout << a[k].m << " "; // [9] 用printf("%g")输出成绩,%g会自动去掉小数末尾的零和多余的小数点(如68.400→68.4) printf("%g",a[k].s); return 0; }
- 1
信息
- ID
- 1019
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者