2017-01-23 75 views
-9

你如何輸入一個整數,並從最高到最低排序(例如,我輸入123456,它輸出654321,輸入可以自定義)。我有一個大數目的問題。你如何輸入一個整數,並從最高到最低排序

+0

所以你要在字符串中的數字排序?你有沒有嘗試過使用['std :: sort'](http://en.cppreference.com/w/cpp/algorithm/sort)? – BoBTFish

+3

C不是C++,C++不是C等......你有沒有嘗試過任何東西?請使用正確的語言標記提供[mvce](http://stackoverflow.com/help/mcve)。 – George

+0

「自定義」輸入是什麼意思? – molbdnilo

回答

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; 
} 
+0

請不要鼓勵人們通過爲他們編寫代碼來爲我的問題編寫代碼。 –

+0

我在分享新程序員的代碼時似乎沒有任何錯誤。 –

+0

然後,如果還沒有這樣做,那麼您應該參加[導覽],閱讀[幫助]和[答案]。回答這樣的(代碼請求)問題只會鼓勵他們提出更多問題(如果這個問題是無題的話,爲什麼這個問題是回答的?)。無論如何,我認爲在爲某人提供代碼方面沒有任何價值 - 如果他們只是學習,如果他們沒有嘗試自己編寫代碼,並獲得代碼,他們就會學**沒有任何**。 –

相關問題