希望能用c++编写代码描述N个小朋友在一起做游戏。 每个小朋友在自己的硬纸板上写一个数然后同时举起来。 接着小y老师提一个问题看哪个小朋友先抢答出来。 问题是:在这N个数中第K大的是哪个数?请你编程完成。输入描述输入文件的第一行为2个整数依次为N和K K = N = 10000 。 下面N行每行为一个整数表示从第1个小朋友到第N个朋友分别写的数。假设这些小朋友只知道-32768~32767之间的数
以下是用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/iLd8 著作权归作者所有。请勿转载和采集!