题目描述 帮老师统计一个班级 NN (10 \lt N \lt 10010<N<100)个同学的考试成绩(成绩不可能全一样)中排名第二高的成绩是多少? 输入 第 11 行有一个整数 nn(10 \lt n \lt 10010<n<100)。 第 22 行有 nn 个整数,用空格隔开。 输出 输出排名第 22 高的成绩。 样例 输入复制 15 98 98 56 88 98 99 66 87 67 89 54 77 66 89 60 输出复制 98 来源 数组问题
时间: 2024-04-15 14:30:37 浏览: 109
这个问题可以通过排序来解决。我们可以将所有的成绩从高到低进行排序,然后取第二个成绩即可。
以下是一个示例代码:
```python
n = int(input()) # 输入同学的人数
scores = list(map(int, input().split())) # 输入成绩列表
scores.sort(reverse=True) # 将成绩从高到低排序
second_highest = scores[1] # 取第二个成绩
print(second_highest) # 输出第二高的成绩
```
对于你给出的示例输入,输出将会是98。
相关问题
题目描述 帮老师统计一个班级 NN (10 \lt N \lt 10010<N<100)个同学的考试成绩(成绩不可能全一样)中排名第二高的成绩是多少? 输入 第 11 行有一个整数 nn(10 \lt n \lt 10010<n<100)。 第 22 行有 nn 个整数,用空格隔开。 输出 输出排名第 22 高的成绩。 样例 输入复制 15 98 98 56 88 98 99 66 87 67 89 54 77 66 89 60 输出复制 98
根据你提供的输入和输出样例,我已经明白了你的需求。下面是一个C++程序的示例代码,可以帮助你解决这个问题:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> scores(n);
for (int i = 0; i < n; i++) {
cin >> scores[i];
}
sort(scores.begin(), scores.end(), greater<int>());
int secondHighestScore = scores[1];
cout << secondHighestScore << endl;
return 0;
}
```
你可以将以上代码复制到一个.cpp文件中,并通过编译运行来获取结果。程序首先读取一个整数n,表示学生人数。然后读取n个整数作为学生的成绩,并将这些成绩存储在vector中。接下来,使用sort函数对成绩进行降序排序。最后,输出第二高的成绩。
希望这可以帮助到你!如果你还有其他问题,请随时提问。
阅读全文