在数组中打印最小和最大的no(java)

时间:2015-02-09 18:59:54

标签: java arrays

/ *我用数组的初始值取两个变量,这样我们就可以比较最大和最小的数字。然后循环检查每个数字的数组与默认的一个更大和更小,如果没有那么将被替换,但为什么我的答案出错了? * /

class twod {

    public static void main(String ...NR){

        int a[][] = {{11,21,31},{9,22,23}};
        int maximum = a[0][0];  
        int minimum = a[0][0];

        for(int i=0;i<a.length;i++){    

           for(int j=0;j<a.length;j++){
                if(a[i][j]>maximum){
                     maximum = a[i][j];
                }
                else if(a[i][j]<minimum){
                     minimum = a[i][j];
                }
            }   
        }
        System.out.println("Largest no is  " + maximum); 
        System.out.println("Smallest no is  " + minimum);
    }

}

2 个答案:

答案 0 :(得分:0)

您的内部循环仅通过ji)的有效值循环j<a.length,该值为0-1,而不是0-2。

循环遍历a[i]数组的有效索引值,而不是a数组的有效索引值。变化

for(int j=0;j<a.length;j++){

for(int j=0;j<a[i].length;j++){

答案 1 :(得分:0)

在您的代码for(int j=0;j<a.length;j++)a.length = 2。所以它没有检查下一个数字。

将其更改为for(int j=0;j<a[i].length;j++),然后就可以了。