В чем ошибка (получение от пользователя N, создание матрицы 3х3, заполнение ее рандомными числами и вывод минимального элемента побочной диагонали)?

import java.util.Random;
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("Input N>=3: ");
        int num = in.nextInt();
        // int num=3;
        Random r = new Random();
        if (num >= 3) {
        int[][] array = new int[3][3];  //объявление двумерного массива размерностью 3 на 3
        for (int i = 0; i < array.length; i++) {//цикл для выделения памяти для каждого подмассива
            for (int j = 0; j < array.length; j++) {
                    array[i][j] = r.nextInt(100);//генерация матрицы со случайными значениями
                    //System.out.print(array[i][j]+"\t");
                }
                // System.out.print("\n");
            }
         int minDiag = array[0][0];//мин элемент матрицы  - начальное значение
         for (int i = 0; i < array.length; i++) {
                minDiag = Math.min(minDiag, array[i][i]);// поиск мин элемента матрицы
        }
        System.out.println(minDiag);//вывод мин элемента
        } else {
            System.out.println("Wrong N");
        }
    }
}

Ответы (1 шт):

Автор решения: Waden

Если добавить метод для выведения значения массива

static void write(int[][] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }

то будет видно, что в этом цикле вы ищете минимальной элемент главной диагонали

for (int i = 0; i < array.length; i++) {
                minDiag = Math.min(minDiag, array[i][i]);// поиск мин элемента
                                                         // матрицы
        }

Надо этот цикл заменить на такой и тогда всё будет работать корректно

for (int i = 0, j = array.length - 1; i < array.length; i++, j--) {
                minDiag = Math.min(minDiag, array[i][j]);
            }
→ Ссылка