题目描述
读入 个整数存进 vector<int>,把它们从大到小(降序)排好,再按顺序输出。
先看下面这个「读入 个数、sort 升序、输出」的完整模板程序,把它改造成降序输出即可:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) cin >> v[i];
sort(v.begin(), v.end()); // 升序排序:默认从小到大
for (int i = 0; i < n; i++) {
cout << v[i] << " \n"[i == n - 1]; // 依次输出每个元素,最后一个后面换行
}
return 0;
}
改法不止一种:给 sort 添上第三个参数 greater<int>(),它就改成从大到小;也可以自己写比较函数,让它在 应排在 前面时返回 a > b。
输入格式
第一行一个整数 ()。
第二行 个整数 ()。
输出格式
一行 个整数:从大到小输出,用空格分隔。
样例
输入:
5
3 1 4 1 5
输出:
5 4 3 1 1
升序的 sort 添上第三参数 greater<int>() 后改成从大到小:5、4、3、1、1。
数据范围
,。提示:sort(v.begin(), v.end()) 什么都不加永远是升序——想反着来,第三参数不能忘。