题解
2026-05-05 15:12:38
发布于:湖南
4阅读
0回复
0点赞
题意
给定一个长度为 n 的数组,需要从中找出最大的 k 个数,并按照从大到小的顺序输出。
思路
1.输入数据:先读入数组长度 n 和需要取出的最大数的个数 k,然后读入 n 个整数存入数组。
2.自定义排序:使用 sort 函数,配合自定义比较函数 cmp,实现数组从大到小降序排序。
3.输出结果:依次输出排序后数组的前 k 个元素,即为最大的 k 个数。
完整代码
#include <bits/stdc++.h>
using namespace std;
bool cmp(int a1, int a2) {
return a1 > a2;
}
int main() {
int n,k;
cin >> n >> k;
const int N = 1e6 + 5;
int a[N];
for (int i = 1; i <= n; i++) cin >> a[i];
sort(a+1,a+1+n,cmp);
for (int i = 1; i <= k; i++) cout << a[i] << " ";
return 0;
}

这里空空如也








有帮助,赞一个