Печатать треугольную верхнюю и нижнего массива java

Я пробую печатать треугольную верхнюю и нижнего массива. В этом случае я выбираю

1 2 3 
4 5 6 
7 8 9

. Код этот:

public class matriztriangular {

public static void main(String args[]) {

    int[][] matriz = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    imprimirMatriz(matriz);
}

public static void imprimirMatriz(int[][] matriz) {
    int lado = matriz.length;
    for (int i = 0; i < lado; i++) {
        for (int j = 0; j <= i; j++) {
            System.out.print(matriz[i][j]);

        }
    }
    System.out.println();
    for (int k = 0; k < lado; k++) {
        for (int l = 0; l <= k; l++) {
            System.out.print(matriz[l][k]);

        }
     }
  }
}

Проблема, которая у меня есть, состоит в том, что, когда треугольный начальник печатает, он я это вредит, вместо того, чтобы вытекать

1 2 3 5 6 9

он вытекает

1 2 5 3 6 9

(треугольная нижняя, если, что я приносит пользу). Кто-то знает где эта ошибку в коде?

1
задан 23.01.2017, 13:22
0 ответов

Проблема это у тебя есть как дела пробегая массив.

Попытайся с этим

for (int i = 0; i < lado; i++) {
    for (int j = i; j < matriz[i].length; j++) {
        System.out.print(matriz[i][j]);
    }
}
3
ответ дан 03.12.2019, 17:32
  • 1
    Ваша проблема идет на квадратных массивах следовательно то, что ты говоришь, не будет происходить. Кроме того не, потому что ты говоришь, что печатается целый массив, когда это НИКОГДА не происходит с этим кодом. –  23.01.2017, 13:39
  • 2
    если, в этом примере будут придать квадратную форму им, но я считаю лучше помещать j<matriz[i].length. Другое я не заметил ассигнование j=i прости –  23.01.2017, 13:49
  • 3
    Если, j< массив [i] .length остается лучше. Я это издаю. –  23.01.2017, 13:53
  • 4
    @Lithorell то, что я пробую, в этом примере массива вопроса, напечатала с одной стороны треугольная нижняя, а именно 1 4 5 7 8 9 и с другой стороны 9 6 5 3 2 1, а именно треугольная верхняя но перевернутая. Я изменил вещи có я говорю, но ú nico, которого я добился, состоит в том, чтобы он напечатал 9 5 6 1 2 3. –  23.01.2017, 17:14
  • 5
    С изменением, которое я поместил, мне меня дает 1 2 3 5 6 9 –  23.01.2017, 17:17

Попытайся с помощью счетчика:

int[][] matriz = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
    int cont = 0;

    for (int i=0; i<matriz.length; i++){
      for (int j=cont; j<matriz[i].length; j++){
        System.out.print(matriz[i][j] + ",");
      }
      cont++;
    }

Вывод был бы:

1,2,3,5,6,9,

1
ответ дан 03.12.2019, 17:32