java - 二维数组java中的最小值和最大值

标签 java arrays java-2d

我想输出二维数组的最大值和最小值。 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 初始化为零,因为这是数组元素的默认值;没有什么能比这个更小,所以答案总是零。

您应该在标记为“查找最小值”的 block 中启动外部 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),因为这些值保证分别小于和大于它们.

关于java - 二维数组java中的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452190/

相关文章:

java - 防止 Int 将 012345 更改为 5349

java - 如何从 Java Cipher 加密的文件中解密 objective-c

javascript - 尝试返回二叉树的层序遍历

java - 如何在两个不同的类中使用相同的 add() 方法

java - 如何在 Graphics2D 上下文中为 Path2D 对象上的矩形设置动画

java - 如何从Java2D生成的图形生成事件

java - 在 Java 2D 中实现 Polygon2D

java - 如何在Java和C#中获取定义的元素之前和之后的所有元素

java - 从 IWorkspaceRoot 和位置字符串获取 IFile

javascript - 当迭代数组并打印键和值时,还包括 __proto__ 函数,为什么?