2017-07-09 8 views
1
# include <iostream> 
using std::endl; 
using std::cout; 
using std::cin; 
int main() 
{ 
    int numUserInt;   // Number of integers the user inputs 
    int integers; 
    int number; 
    int maxNumber = 0; 
    int minNumber = 0; 

    // Get the number of integers 
    cout << "How many integers would you like to enter?" << endl; 
    cin >> numUserInt; 
    cout << "Please enter " << numUserInt << " integers." << endl; 

    integers = 1; 

    while (integers <= numUserInt) 
    { 
     cin >> number; 

     if (numUserInt == 1) 
      maxNumber = minNumber = number; 

     if (number > maxNumber) 
      maxNumber = number; 

     if (number < minNumber) 
      minNumber = number; 

     integers++; 
    } 

    cout << "min: " << minNumber << endl; 
    cout << "max: " << maxNumber << endl; 
    return 0; 
} 

私はユーザに「どの整数を入力しますか」と尋ねて、使用しない量から最大値と最小値を求めますアレイ。ほとんどの場合、私のプログラムは動作しますが、ユーザーが-6 -6を入力すると、出力はmin:-6とmax:0になります。これは最小値と最大値が-6であるとしますが、残りのコードを動作させることでこれを行います。誰かがこれを行う方法を知っていますか?ユーザの入力番号からの最大値と最小値を表示するC++

+1

典型的な方法は、初期分間の初期最大値、最小の整数値、およびその逆を行うことです。 –

+0

あなたが許されているのであれば、['std :: minmax_element'](http://en.cppreference.com/w/cpp/algorithm/minmax_element)を使うことを検討してください(それは宿題であるから、そうではないかもしれませんが、とにかく、それであなたは/実際の生活で同様の問題が起きたときに何をすべきかを知るでしょう)。 –

答えて

0

あなたは
if (integers == 1)によって
if (numUserInt == 1)
を交換する場合はあなたのコードは、意図したとおりに動作します。
は、第一の入力と最小値と最大値を初期化する

そのように、コメントや他の回答からの推薦、
が実装されています。

出力:これを行うには

How many integers would you like to enter? 
2 
Please enter 2 integers. 
-6 
-6 
min: -6 
max: -6 
1

は、ユーザが更新をneeededれているかどうかを確認するたびに入力するものにminmaxを比較する初期入力にminmax変数の両方の値を設定します。

関連する問題