2016-03-27 5 views
1

プログラムはこれを行います:個々に、そして全体としてではなく、最小値と最大値を得るには?

実行のコース全体でmaxとminが変更されていることを確認し、ユーザー入力に基づいて各インスタンスが完了した後にそれぞれの変数にそれらを出力します。

しかし、私はそれがやりたいことはある:

は、それぞれの変数にそれらを印刷し、その後、個々の実行のための最大と最小を確認してください。

以下のコードを変更して、全体の最大値と最小値の代わりに各実行の最大値と最小値を取得するにはどうすればよいですか?ここで

はコードです:

package test; 
import java.util.*; 

public class Test { 

    public static void main(String[] args) { 

     Random generator = new Random(); 
     float smallest, largest; 
     int years; 
     float[] array = new float[12]; 

     smallest = Integer.MAX_VALUE; 
largest = Integer.MIN_VALUE; 
Scanner keyboard = new Scanner(System.in); 
System.out.print("Enter desired years: "); 
years = keyboard.nextInt(); 

for (int i = 1; i <= years; i++){ 
    System.out.println("Year " + i); 
    for (int month = 1; month <= array.length; month++){ 
    array[i] = generator.nextFloat() * 100; 
    System.out.println("Month " + month + ": " + array[i]); 
    if(array[i] < smallest) 
     smallest = array[i]; 
    if(array[i] > largest) 
     largest = array[i]; 

} 
    System.out.println("Max = " + largest); 
    System.out.println("Min = " + smallest); 
} 
+0

両方を行う方法はありますか?私は毎年個別の実行を行うように自分のコードを修正しましたが、現在は全体の最大値、最小値、平均値、中央値とモードの両方を実行しようとしています。 – Ryan

答えて

0

あなたは、ループの最後で最大と最小をリセットされていません。

package test; 

import java.util.*; 

public class Test { 

    public static void main(String[] args) { 

     Random generator = new Random(); 
     float smallest, largest; 
     int years; 
     float[] array = new float[12]; 

     smallest = Integer.MAX_VALUE; 
     largest = Integer.MIN_VALUE; 
     Scanner keyboard = new Scanner(System.in); 
     System.out.print("Enter desired years: "); 
     years = keyboard.nextInt(); 

     for (int i = 1; i <= years; i++) { 
      System.out.println("Year " + i); 
      for (int month = 1; month <= array.length; month++) { 
       array[i] = generator.nextFloat() * 100; 
       System.out.println("Month " + month + ": " + array[i]); 
       if (array[i] < smallest) 
        smallest = array[i]; 
       if (array[i] > largest) 
        largest = array[i]; 

      } 
      System.out.println("Max = " + largest); 
      System.out.println("Min = " + smallest); 

      // HERE 
      // Reset largest and smallest 
      largest = Integer.MIN_VALUE; 
      smallest = Integer.MAX_VALUE; 
     } 
    } 
} 
+0

ありがとうございました!私はあなたがそれをすることができるか分からなかった。 – Ryan

関連する問題