Печать четных чисел в столбцах 2D массива

#java #arrays

Вопрос:

здравствуйте, ребята, я изо всех сил пытаюсь найти правильный способ печати только четных чисел массива.

Я создал массив 1 размера, чтобы сохранить элемент столбцов, а затем убедиться, что индекс col%2==0 этого числа указан в выходных данных.

 import java.util.Scanner;
public class Matrix {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //array with 3 row in 5 col
        int[][] matrix = new int[3][5];
        //int []y = new int[5];
        // to impalement th array
        for (int i = 0; i < 3; i  ) {
            for (int j = 0; j < 5; j  ) {
                System.out.print("Enter matrix["   i   "]["   j   "]: ");
                matrix[i][j] = input.nextInt();
            }
            System.out.print("n");
        }
        System.out.print("matrix values n");
        // to show up  the originally array
        for (int i = 0; i < 3; i  ) {
            for (int j = 0; j < 5; j  ) {
                System.out.print(matrix[i][j]   "t");
            }
            System.out.print("n");
        }
        //////the new array to display only the even numbers in the col
        System.out.print("n");
        for (int i = 0; i < 3; i  ) {
            for (int j = 0; j < 5; j  ) {
                int[] y = matrix[j];
                for (int k = 0; i < y.length; i  ) {
                    if (y[k] % 2 == 0)
                        System.out.println(y[k]);
                }
            }
        }
    }
}
 

на выходе не выводится новый массив

     matrix values 
1   2   3   4   5   
6   7   8   9   10  
3   2   4   5   9   
 
 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
    at Matrix.main(Matrix.java:43)
 

Ответ №1:

i Заменить k здесь :

 for (int j = 0; j < 5; j  ) {
    int[] y = matrix[j];
    for (int k = 0; i < y.length; i  ) {
        if (y[k] % 2 == 0)
            System.out.println(y[k]);
    }
}