2013-11-21 114 views
0
package array; 
import java.util.*; 
public class Array { 

public static void main(String[] args) { 
    int [] a = new int [10]; 
    Random number = new Random(); 
    int x; 
     int min, max ; 
     min = max = a[0]; 

for (int b = 0; b<a.length; b++) 
    { 
     x = number.nextInt (100); 
     // System.out.println (x); just for testing x 

     a [b]= x; 
     System.out.println (a[b]); 

     if (a[b] < min) min = a[b]; 
     if (a[b] > max) max = a[b]; 
    } 

System.out.println ("Min is: " + min + " " + "Max is: "+ max); 
} 
} 

當我設置min = a [0];max = a [0],它只返回最大值,min始終爲0;無法弄清楚什麼是錯的。但是,當我爲[0] .. a [9]賦值時,它可以工作。有人能幫助我嗎?Java數組最小和最大問題

回答

6

那麼number.nextInt (100);將返回一個介於0和之間的數字。由於您初始化mina[0];(當您創建您的int數組時,它是0),您始終將0作爲最小值。

嘗試初始化minmin = Integer.MAX_VALUE;

+2

+1你打我:) – Thomas

+0

泰 - 這是一個問題。 – user3018155

+0

好的,解決它。一個簡單的問題,所以我可以使用max = Integer.MIN_Value;最大? – user3018155

0

我以爲你只輸入正數。爲了達到這個目的(我假設你想獲得最少輸入的數字),請使用Integer.MAX_VALUE來初始化min。

的問題是以下內容:

int [] a = new int [10];將創建的10個整數的數組,並且由於元件是原始整數他們與初始化爲0。

min = max = a[0];隨後將初始化min 0,即使x = number.nextInt (100);可能稍後會返回僅大於0的數字。

即使使用0初始化max也是錯誤的,如果您還嘗試生成負數。因此用Integer.MIN_VALUE更好地初始化max

0
min = max = a[0]; // this statement initialize min variable with 0 

if (a[b] < min) min = a[b]; // this statement will never execute because your are assigning new value to a[] on each index, even random class generate 0. 
0
//if (a[b] < min) min = (a[b]); 
//the condition is never met because the min value of x is always 0 
package array; 
import java.util.*; 

public class Array { 

    public static void main(String[] args) { 
     int [] a = new int [10]; 
     Random number = new Random(); 
     int x; 
     int min = Integer.MAX_VALUE; 
     int max = Integer.MIN_VALUE; 

     for (int b = 0; b<a.length; b++){ 
      x = number.nextInt (100); 
      // System.out.println (x); just for testing x 

      a [b]= x; 
      System.out.println (a[b]); 

      if (a[b] < min) min = a[b]; 
      if (a[b] > max) max = a[b]; 
     } 

     System.out.println ("Min is: " + min + " " + "Max is: "+ max); 
}