如何输入整数并将其从最高到最低排序(例如,我输入123456,输出654321,输入可以自定义)。我有大量问题。
答案 0 :(得分:2)
我遇到大量问题。
整数类型的范围有限。要避免此类问题,请将输入视为字符串,然后只对字符串中的字符进行排序。
对于错误处理,您可能需要检查输入是否仅包含数字。
答案 1 :(得分:1)
了解std::string
,std::sort
,std::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;
}