如何输入整数并将其从最高到最低排序

时间:2017-01-23 10:37:22

标签: c++

如何输入整数并将其从最高到最低排序(例如,我输入123456,输出654321,输入可以自定义)。我有大量问题。

3 个答案:

答案 0 :(得分:2)

  

我遇到大量问题。

整数类型的范围有限。要避免此类问题,请将输入视为字符串,然后只对字符串中的字符进行排序。

对于错误处理,您可能需要检查输入是否仅包含数字。

答案 1 :(得分:1)

了解std::stringstd::sortstd::greater

// Input
std::string s = "123456";

// Sort descending
std::sort(s.begin(), s.end(), std::greater<char>());

答案 2 :(得分:-1)

我认为以下代码适合您。

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

bool Isnum(char ch)
{
    if(ch >= 48 && ch <= 57)
        return true;
    else
        return false;
}
bool compare(char a,char b)
{
    return a>b;
}
int main()
{
    string num;
    cin >> num;
    cout << num << endl;
    int i;
    for(i=0;i<num.length();i++)
    {
        if(!Isnum(num[i]))
        {
            cout << "Enter a valid number";
            return 0;
        }
    }
    sort(num.begin(),num.end(),compare);

    cout << num;


   return 0;
}