2016-11-21 2 views
-1

私は最小値として0を得続けます。私はそれがゼロに初期化された最小値と関係があることを知っていますが、私はそれの周りに私の頭を包んで適切に変更することはできません。このプログラムで最小値が常にゼロになるのはなぜですか?

マイコード:

import java.util.Scanner; 
import java.util.Arrays; 

public class InputPractice { 

    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 
     float average; 
     int NumberofIntegers = 0; 
     double total = 0; 

     System.out.println("Please enter the number of Integers: "); 

     NumberofIntegers = input.nextInt(); 

     for (int i = 1; i <= NumberofIntegers; i++) { 
      System.out.print("Entered Value " + i + " : "); 
      total += input.nextDouble(); 
     } 

     int minValue = 0; 
     int maxValue = 0; 

     for (int i = 1; i <= NumberofIntegers; i++) { 
      System.out.print("Enter value number " + i + " again: "); 
      int inputNumbers = input.nextInt(); 

      if (inputNumbers > maxValue) { 
       maxValue = inputNumbers; 
      } else if (inputNumbers < minValue){ 
       minValue = inputNumbers; 
      } 
     } 
     System.out.println("Maximum Value: " + maxValue); 
     System.out.println("Minimum Value: " + minValue); 
     System.out.println("Average : " + (total/NumberofIntegers)); 
    } 
} 
+3

minValueを0に初期化するため、Integer.MAX_VALUEに初期化します。 – Eran

+1

'minValue'を可能な限り最大化する必要があります:' Integer.MAX_VALUE' – BackSlash

+3

0以外の*になると思います。ヒント:負の数を指定すると、0より小さくなります。あなたは負の数を与えますが、あなたの最大値は(誤って)0になります。ああ、あなたが本当にそのelseを望むかどうかを検討してください。 1つの番号しかない場合は、最小値と最大値が同じである必要があります。 –

答えて

2

間違っinitialization.Simplyは言った - 0は常にあなたの番号のいずれよりも小さいです。

MAXは(正の数または0)MIN_VALUEなければならないがMINは、MAX_VALUEでなければならない

OR

あなたが開始MINとMAXの両方の入力の最初の数を使用することができます。

関連する問題