2016-09-21 9 views
-1

私はC++を初めて使っています。私はこれが非常に初心者の問題であることを知っています。 ユーザーに番号を入力させることになっています。例:4.これは、読んで、最大のものを見つけ出す数です。私のプログラムでは、ユーザは数字を入力して4つの整数をリストすることができます。私が最大の数字を印刷するとき、それは最大のものではありません。誰かが私が間違っていることを説明することができれば、それは非常に高く評価されるだろう!なぜ私のプログラムは最大の数字を読みませんか?

#include <iostream> 
using namespace std; 

int main() 
{ 

    float largest; 
    float max_input; 
    float total = 0; 
    float input; 

myDefault: 
    cout << "Enter a positive number to start: "; 
    cin >> max_input; 

    if (max_input >= 0) 
    { 
     total++; 


      do { 
       cout << "Enter integer: "; 
       cin >> largest; 

        if (largest >= 0) 
         { 
         total++; 

          if (input > largest) 
          { 
          input = largest; 
          } 

       } 
       }while (total <= max_input); 

       cout << "\nThe largest number you entered is: " << largest << ".\n\n"; 

    } 

    else 
    { 
     cout << "Error. Enter a Positive number to start. \n"; 
     goto myDefault; 

    } 

    return (0); 

    } 
+0

になります。 – user3286661

+0

あなたのコンパイラは、ほとんどの場合、初期化されていない変数について警告しました。コンパイラの警告を無視しないでください。 –

答えて

1

は何か試してみてください:

#include <iostream> 
using namespace std; 

int main() 
{ 

    float largest = 0; 
    float max_input; 
    float total = 0; 
    float input; 

myDefault: 
    cout << "Enter a positive number to start: "; 
    cin >> max_input; 

    if (max_input >= 0) 
    { 
     total++; 
     do { 
      cout << "Enter integer: "; 
      cin >> input; 

      if (input >= 0) 
      { 
       total++; 

       if (input > largest) 
       { 
        largest = input; 
       } 
      } 

     } while (total <= max_input); 

     cout << "\nThe largest number you entered is: " << largest << ".\n\n"; 
    } 

    else 
    { 
     cout << "Error. Enter a Positive number to start. \n"; 
     goto myDefault; 
    } 

    return (0); 
} 

をここでは、次のユーザの入力が最大より大きいかどうかをチェックする、largestinputを格納しています。あなたの変更のみで

+0

これは私が他の問題を読んだ後に思いつきました。私が今問題にしているのは、 "入力した最大の数字は:3.5325e + 27"です。整数の代わりに。 – Jeff

+0

あなたはその結果を得たときにあなたの入力は何ですか? – friendoflore

+0

正の数を開始します:5 は整数を入力します。7 は整数を入力します。3 は整数を入力します。4 は整数を入力します。入力した4 最大数は次のとおりです:2 は整数を入力し3.5325e + 27。 – Jeff

4

あなたは常に変数inputが、そのために使用されているものでなければならない新しい入力、とlargestの値を上書きしています。 if (input > largest)をチェックし、largestという値の代わりにinputを置き換えます。これはまったく意味がありません。

inputの代わりにlargestの値を新しいinputの値に置き換えてください。

変数largestも初期化する必要があります。入力の一部でもないランダムなメモリガーベジ値で開始されないようにしてください。たとえば、最初に入力した値で上書きされるようにするには、FLT_MINとして開始することができます。

また、意思決定はif (largest >= 0)に限定されていますが、この条件はコードを破るだけです。

さらに、読みやすくするためにコードを適切にインデントする必要があります。今や、各コードブロックの開始と終了の場所を知ることは難しいですが、これはコードを一見して判断できるものでなければなりません。この混乱はデバッグを非常に困難なものにします。

0

あなたにはinputという変数がありますが、入力するときはlargest変数を使用しています。入力を正しく保存できるように、

と入力してください。

if (input > largest) 
{ 
    input = largest; 
} 

これは後方に見える、私はあなたが周りにいない他の方法、inputするlargestを割り当てたいと思います。

0

if (input < largest)cout << "\nThe largest number you entered is: " << largest << ".\n\n"; へへ
float largest=0; 
float max_input=0; 
float total = 0; 
float input=0; 

if (input > largest) 

float largest; 
float max_input; 
float total = 0; 
float input; 

です cout << "\nThe largest number you entered is: " << input << ".\n\n";

最終的なコードは、あなたが入力変数を初期化していない

#include <iostream> 
using namespace std; 
int main() 
{ 
float largest=0; 
float max_input; 
float total = 0; 
float input=0; 
myDefault: 
cout << "Enter a positive number to start: "; 
cin >> max_input; 

if (max_input >= 0) 
{ 
    total++; 


     do { 
      cout << "Enter integer: "; 
      cin >> largest; 

       if (largest >= 0) 
        { 
        total++; 

         if (input < largest) 
         { 
         input = largest; 
         } 

      } 
      }while (total <= max_input); 

      cout << "\nThe largest number you entered is: " << input << ".\n\n"; 

} 

else 
{ 
    cout << "Error. Enter a Positive number to start. \n"; 
    goto myDefault; 

} 

return (0); 

} 
関連する問題