簡體   English   中英

Java數組最小和最大問題

[英]Java array min and max issue

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; 無法弄清楚出了什么問題。 但是,當我為a [0] .. a [9]分配值時,它可以工作。 有人能幫助我嗎?

井號number.nextInt (100); 將返回介於099之間的數字。 由於您使用a[0];初始化了min a[0]; (當您創建int數組時為0),您總是總是得到最小的0。

嘗試使用min = Integer.MAX_VALUE;初始化min min = Integer.MAX_VALUE;

我假設您只輸入正數。 為了使此功能按預期工作(我假設您想獲得輸入最少的數字),請使用Integer.MAX_VALUE初始化min。

問題如下:

int [] a = new int [10]; 將創建一個由10個int組成的數組,並且由於元素是原始整數,因此將它們初始化為0。

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

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

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. 
//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 ); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM