2011-09-18 65 views
0

嗨我剛剛完成這個的:最大的幾個數字

#include <iostream> 

using namespace std; 

int main() 
{ 
    char a, b, c, d, e, f; 
    char max; 

    cout << "enter a b c: "; 
    cin >> a >> b >> c >> d >> e >> f; 

    max = a; 
    if (b > max) 
     max = b; 
    if (c > max) 
     max = c; 
    if (d > max) 
     max = d; 
    if (e > max) 
     max = e; 
    if (f > max) 
     max = f; 

    cout << "max is " << max << "\n"; 

    return 0; 
} 

這顯然只適用於6個條目。我想這樣做,如果你輸入2,3,4或5個條目,它仍然可以工作!我猜我必須補充休息,只是不確定。

+1

遵守零一無窮規則並使用容器/循環使其適用於任何數字的情況如何? – PlasmaHH

+0

建議:爲什麼不使用'char [6]'而不是有6個不同的標識符? – Mahesh

+0

您是否考慮過使用數組來存儲輸入值,然後循環遍歷數組? – entitledX

回答

5

提示:您實際上並不需要存儲插入的每個字符。

您可以只保留一個變量來保持實際的「當前最大值」,並且每次用戶輸入一個新的數字時,都會將「當前最大值」與新數值進行比較:如果當前最大值超過了,新輸入(如果它較少),而是新輸入成爲新的最大值。

要允許用戶輸入他想要的字符數(直到他插入「特殊」字符退出),您可以使用while循環。

+0

像這樣..:while(!)(0)if號碼= 10還是你的意思是不同的? – johnmath15

+0

爲什麼你把所有的模('%')和分區的東西?您只需在每次迭代中閱讀用戶輸入,並檢查它是否大於您當前的最大值... –

+0

是的,但我不確定如何! – johnmath15

1

您應該認真閱讀關於C++(或任何編程語言)的入門書籍。

無論如何,這裏是你如何做到這一點。

#include <iostream> 

using namespace std; 

int main(){ 
char ch,max = 0; 
int n=0; 
cout<<"\nEnter number of characters :"; 
cin>>n; 
cout<<"\nEnter characters\n"; 
while(n>0) 
{ 
    cin>>ch; 
    if(max<ch) 
     max = ch; 
    --n; 
} 

cout<<"Max : "<<max; 


return 0; 

} 
+0

嘿,那是偉大的..我想知道什麼 - n的意思?? – johnmath15

+0

@ johnmath15它簡寫爲:n = n - 1 – vivek

+0

爲什麼代碼只與那個? – johnmath15