在二维数组中查找最小值时遇到麻烦

时间:2020-10-16 13:05:16

标签: java

这是我的示例代码,我无法找到最小的变量。当找到最大的变量时,它总是返回零。 我使用了相同的技术,但不知道我要去哪里。

请帮助我。

    for (int i = 0; i < n; i++) {
        smallest = array[i][0];
        largest = array[i][0];//set largest to 0 at each round
        mean = 0;
        
        System.out.print("Round " + (i + 1) + " Cards: ");
        Scanner in = new Scanner(System.in);

        while (in.hasNext()) {
            if (in.hasNextInt()) {
                for (int j = 0; j < m; j++) {
                    array[i][j] = in.nextInt();
                    if (array[i][j] > 9) {
                        System.out.println("Must be between 1-9");
                        // Arrays.fill(array, null);
                        j = 0;
                        System.out.print("Round " + (i + 1) + " Cards: ");
                    }
                    // Largest value
                    if (array[i][j] >= largest) {
                        largest = array[i][j];  
                    }
                    
                    // Smallest value
                    //smallest = array[i][0];
                    if (array[i][j] < smallest) {
                        smallest = array[i][j];
                         
                    }
  
                    // total
                    mean += array[i][j];
                }
                break;
            } else {
                in.next();
            }

        }
        //mean calculation
        array[i][m] = largest;
        array[i][m + 1] = smallest;
        array[i][m + 2] = (int) mean / m;

    }

1 个答案:

答案 0 :(得分:0)

这是在2D数组中查找最小值和最大值的一种干净方法。 如果我正确理解了您要在评论中说的话,则可以用i < array.length替换m,用i < array[i].length替换n

public static void main(String[] args) {
        int[][] array = new int[][]{{7, 8, 32439, 0}, {1, -32, 3, 5}};
        int smallest = Integer.MAX_VALUE;
        int largest = Integer.MIN_VALUE;

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j] < smallest) {
                    smallest = array[i][j];
                }
                if (array[i][j] > largest) {
                    largest = array[i][j];
                }
            }
        }

        System.out.println(smallest);
        System.out.println(largest);
    }

输出:

-32

32439