2017-03-23 5 views
-3

ユーザーが入力した一連の値を読み取るプログラムを作成したいと思います。次に、値の最小値、最大値、合計値、平均値を出力します。下記を参照してください。入力の最初の値がスキップされました

 float largest = in.nextFloat(); 
     float smallest = largest; 
     while (inputs != -1) \\-1 is the sentinel 
     { 
      inputs = in.nextFloat(); 
      if (inputs !=-1) 
      { 
       sum = sum + inputs; 
       counter++; 
       if (inputs > largest) 
       { 
        largest = inputs; 
       } 
       if (inputs < smallest) 
       { 
        smallest = inputs; 
       } 

      } 

     } 

これは機能しません。何が起こるかは、合計のために、最初の入力がカウントされないことです。例えば、1 2 3 4 5 -1とすると、15の代わりに14の合計が得られます(-1はセンチネルです)。ユーザーが入力した最初の値が "float largest"を初期化するために使用され、次に2番目の値が "入力"に入る最初の値になるため、なぜこれがわかるのだろうかと思う。

私は間違いを知っているとは思うが、私はそれを修正する方法は知らない。最初の2行のコードをwhileループに移動しようとしましたが、それはどこにも至りません。どのようにこれを行うにはどのようなアイデア?

+1

は、私がミスを知っている疑いがあるhttp://stackoverflow.com/q/13102045/5647260 – Li357

+1

を参照してください? – Omore

+0

@Omoreあなたは質問から文を繰り返しました。 –

答えて

0

コードの最初の行は、値を取得してカーソルを移動することです。あなたがループする前に、あなたの合計を初期化する必要があり

float largest = in.nextFloat(); 
float smallest = largest; 
float sum = largest; 
関連する問題