问题描述
小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。
输入格式
输入的第一行包含一个正整数N,表示N个景点。
第二行有N个正整数,表示每个景点的评分值。
输出格式
输出一行,包含N个正整数,表示N个景点的评分从大到小的排列
样例输入
4
3 2 4 1
样例输出
4 3 2 1
数据规模和约定
N<=1000,每个景点的评分<=10000。
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int n;
int pingfeng[1010];//不是1000而是1010,目的是为了减少越界的风险
cin >> n;
for (int i = 0; i < n; i++) {
scanf("%d", &pingfeng[i]);//经验:在输入数据超过或接近1000时,scanf的效率比cin高
}
sort(pingfeng, pingfeng + n,greater<int>());//第三个参数省略时默认为less<int>(),即从小到大排序。提示:千万不要漏了括号
for (int i = 0; i < n; i++) {
printf("%d ", pingfeng[i]);
}
return 0;
}
sort函数使用频率很高,刷题新手熟悉这个函数的用法对刷题很有帮助,第三个参数可以省略,也可以不省略, 默认为 less< int >(),即从小到大排序。(greater< int >()则是从大到小排序)。