C++ 代码:找出 N 个数中的第 K 大数
C++ 代码:找出 N 个数中的第 K 大数
N 个小朋友在一起做游戏。 每个小朋友在自己的硬纸板上写一个数,然后同时举起来。 接着,小y老师提一个问题,看哪个小朋友先抢答出来。 问题是:在这 N 个数中,第 K 大的是哪个数?请你编程完成。
输入描述
输入文件的第一行为 2 个整数,依次为 N 和 K (K <= N <= 10000)。 下面 N 行,每行为一个整数,表示从第 1 个小朋友到第 N 个朋友分别写的数。假设这些小朋友只知道 -32768~32767 之间的数。
输出描述
输出文件只有一行,就一个数,为第 K 大的那个数
代码实现
以下是用 C++ 编写的代码来解决这个问题:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int N, K;
std::cin >> N >> K;
std::vector<int> numbers(N);
for (int i = 0; i < N; i++) {
std::cin >> numbers[i];
}
std::sort(numbers.begin(), numbers.end(), std::greater<int>());
std::cout << numbers[K - 1] << std::endl;
return 0;
}
代码解释
- 首先读取输入的 N 和 K。
- 创建一个大小为 N 的 vector 来存储每个小朋友写的数。
- 使用循环读取每个小朋友写的数,并将其存储在 vector 中。
- 使用
std::sort函数对 vector 进行降序排序。 - 输出第 K 大的数,即 vector 中的第 K-1 个元素。
希望这可以帮助到你!
原文地址: https://www.cveoy.top/t/topic/qrsK 著作权归作者所有。请勿转载和采集!