Как пройти через 2d массив и посчитать, сколько элементов больше 1 в каждой строке в главном порядке - PullRequest
0 голосов
/ 15 октября 2019

Я пишу метод, который проходит через двумерный массив в главном порядке строк, и в начале каждой строки я инициализирую переменную count в ноль. Во внутреннем цикле, если значение не равно нулю, я увеличиваю переменную count. В конце строки, если переменная count не точно равна 1, вернуть false. Я работал над этим около 2 недель и не могу найти свою ошибку. Пожалуйста, укажите мне в правильном направлении. ** Не обращайте внимания на операторы печати, которые я пытаюсь увидеть, насколько велико число, и мой код, кажется, попадает только во вторую строку массива

public static boolean isGPM(int[][] matrix) {
    int count =0;
    for (int row = 0; row < matrix.length; row++) {
        count =0;
        for (int col = 0; col < matrix[row].length; col++) {
            if (matrix[row][col] > 0) {
                count++;
            }
            else {
                return !gpm;
            }
        }
    }
    System.out.println(count);
    return gpm;
}

1 Ответ

0 голосов
/ 15 октября 2019

Если я вас правильно понимаю, вас интересует только количество строк. Это должно работать:

        int count = 0;

        // Process each row...
        for (int row = 0; row < matrix.length; row++) {

            count = 0;

            // Process each column...
            for (int col = 0; col < matrix[row].length; col++) {

                 // Check the cell.
                 if (matrix[row][col] != 0) {
                     count++;
                 }                     
            }
            // Row processing complete. Check count.
            if (count != 1) {
                System.out.println(count);
                return gpm;
            }
        }
...