简单的排序c++求解
2. 简单的排序【问题描述】
请你来编程实现,输入n(0<n<1000)个int范围内的整数,将这n个整数降序排列后输
出。
输入:共两行,第一行为一个数字n,表示有n个数字。
第二行为要排序的n个数字,以空格隔开。
输出:一行,排序后的n个数,以空格隔开。
【样例输入】
10
54 56 76 100 1000 90 1 0 80 666
【样例输出】
1000 666 100 90 80 76 56 54 1 0
#include <algorithm> #include <cstdio> using namespace std; inline bool Cmp(int a, int b) { return a > b; } int main() { int n; scanf("%d", &n); int a[n + 1]; for (int i = 1; i <= n; i++) scanf("%d", &a[i]); sort(a + 1, a + 1 + n, Cmp); for (int i = 1; i <= n; i++) printf("%d ", a[i]); return 0; }
#include <iostream> #include <iterator> #include <algorithm> #include <functional> using namespace std; int main( void ) { size_t n; cin >> n; int a[1000]; using et = std::remove_reference_t<decltype(a[0])>; copy_n( istream_iterator<et>(cin), n, a ); sort( a, a+n, greater<et>() ); copy_n( a, n, ostream_iterator<et>(cout," ") ); }