2011-09-15 43 views
2

我想製作一個允許您輸入數字(比如145)的程序。它讀取3個整數並打印最大的一個。數字中的最大整數

int a, b, c, max; 

cout << "Enter a, b and c: "; 
cin >> a >> b >> c; 

max = a; 
if (b>max) 
    max = b; 
if (c>max) 
    max = c; 
cout << "Max is " << max << "\n"; 

我想到了使用這樣的東西,但我不知道如何讓計算機讀取每個單獨的整數。另外,我是編程新手,所以我想保持簡單易懂。

謝謝!

+2

歡迎堆棧溢出!你能澄清你的問題嗎? 「讓計算機讀取每個單獨的整數」是什麼意思?上面的代碼確實會讀取用戶的三個整數。 – templatetypedef

+0

所以,你想輸入一個像「145」的號碼,而不是像「1 [enter] 4 [enter] 5 [enter]」? –

+2

這是功課嗎? –

回答

2

你在閱讀數字的方式(cin >> a >> b >> c)要求用空格分隔它們。

因此,如果意圖是將145的每個數字單獨解釋爲數字,則只需在輸入時將它們與空格分開,如下所示:1 4 5

如果他們到一起輸入,他們讀入char變量,然後轉換爲數字(減去'0')。

+0

我如何減去'0'? – JonathanKohn

+0

@john:'ch - '0''其中'ch'是一個包含十進制數字的char變量。 – NPE

0

如果您的意思是數字而不是數字,那麼您可以使用char類型的變量,然後將它們轉換爲整數(儘管通常這不會僅僅用於查看哪一個更大)。或者,你可以讀取一個單一的數字(這似乎是你想要的),並通過連續呼叫% 10, /= 10來獲得每個數字。

+0

如何將它們轉換爲使用的整數?謝謝 – JonathanKohn

+0

'int digit_a = char_a - '0''中的某些內容。 –

+0

但我將如何分隔每個人的數字?那就是我完全失去的地方 – JonathanKohn

0

只需使用的

char a, b, c, max; 

代替

int a, b, c, max; 

,你會得到你想要的。 其他一切保持不變的

int main() 
{ 

    char a, b, c, max; 

    cout << "Enter a, b and c: "; 
    cin >> a >> b >> c; 

    max = a; 
    if (b>max) 
     max = b; 
    if (c>max) 
     max = c; 
    cout << "Max is " << max << "\n"; 
    system("pause"); 
} 
+0

這是行不通的,因爲我想要程序真正的145,只是一個char..then打印5是最大的數字..使用我用於比較3個單獨的數字的邏輯..145輸入,它說5是最大的 – JonathanKohn

+0

我輸入145,它說5是最大的。你認爲最大的是什麼? –

+0

是的,但它是單獨輸入..我想輸入作爲一個單一的144或124,程序會說哪個數字是最大的..輸入145然後按回車,你會得到答案 – JonathanKohn

0

最簡單的辦法:

int number; 
int max = 0; 

cout << "Enter a number : "; 
cin >> number; 

while (number != 0) 
{ 
    if ((number % 10) > max) //Remainder of number/10 
    { 
     max = number % 10; 
    } 
    number /= 10; //remove the last digit 
} 

cout << "The largest number was " << max;