簡體   English   中英

2d數組java中的最小值和最大值

[英]min and max value in 2d array java

我想輸出二維數組的最大值和最小值。 Max工作得很好,但是即使數組中沒有零,min也會始終輸出零。在本例中,我將Math.random()設置為99以防止較小的機會在數組中獲得零。 繼承人完整代碼:

public class e {

public static void main(String[] args)   {

    int a[][] = new int [5][5];
    int l = a[0][0];
    int m = a[0][0];
    int i,j,r,k;


    for(i=0;i<a.length;i++)                   // 
        for(j=0;j<a[i].length;j++){           // 2d array random number generator
            a[i][j] =(int)(Math.random()*99); //
         }
    for(i=0;i<a.length;i++){               //
        for(j=0;j<a[i].length;j++)         //
                                           // create 2d array and output it
    System.out.print(a[i][j] + "\t");      //   
    System.out.println();                  //

}
    System.out.println("\t"); 
        for(r=0;r<a.length;r++){           //
            for(k=0;k<a.length;k++)        //
                if(a[r][k] < m){           // finds a min value
                    m = a[r][k];           //

            }
        }

    System.out.println("\t");               // 
        for(i=0;i<a.length;i++){            //
            for(j=0;j<a.length;j++)         // finds a max value
                if(a[i][j] > l){            //
                    l = a[i][j];            //

            }
        }
    System.out.println("min value is " + m); //outputs min value
    System.out.println("max value is " + l); // outputs max value
            }
       }

由於您在中選擇隨機值a ,不會存在小於零的值-但也無法保證任何值都將恰好為零。 但是,您將m初始化為零,因為這是數組元素的默認值; 沒有什么比這更小了,所以答案總是零。

您應該在標記為“查找最小值”的塊中開始外部for循環之前立即初始化m = a[0][0]

    m = a[0][0];
    for(r=0;r<a.length;r++){           //
        for(k=0;k<a.length;k++)        //
            if(a[r][k] < m){           // finds a min value
                m = a[r][k];           //

        }
    }

另外,您可以設置m = Integer.MAX_VALUE (和l = Integer.MIN_VALUE ),因為保證它們的值分別小於和大於它們。

暫無
暫無

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

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