注册 登录
编程论坛 C++教室

简单的排序c++求解

ljp294777643 发布于 2020-08-20 13:14, 1986 次点击
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
2 回复
#2
雪影辰风2020-08-20 14:20
程序代码:
#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;
}
#3
rjsp2020-08-20 15:27
程序代码:
#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," ") );
}
1