печать симметричного 2d массива

#java

Вопрос:

Я хочу случайным образом сгенерировать симметричную таблицу 10×10 с символами»*», но все это в основном печатается в двух длинных строках. Я знаю, что делаю что-то не так, но я смотрю на это слишком пристально и не вижу проблемы.

 public class Main {
    public static void main(String[]args) {

    int n = 10;
    char[][] array = new char[n][n];
    Random rd = new Random();
    for(int i = 0; i < n; i  ) {
        for(int  j = 0; j < i; j  ) {
            char value;
            if (Math.random()> .5) {
             value = '*';  
            }
            else {
                value = ' ';
            }
            array[i][j] = value;
            array[j][i] = value;
            System.out.print(array[i][j]);
            System.out.println();

            System.out.print(array[j][i]);

        }
    }
    
}

    
}```
 

Ответ №1:

Я не вижу здесь вашего контекста. Но вы можете попробовать это

 public class Main {
    public static void main(String[] args) {

        int n = 10;
        char[][] array = new char[n][n];
        for (int i = 0; i < n; i  ) {
            for (int j = 0; j < i; j  ) {
                char value;
                if (Math.random() > .5) {
                    value = '*';
                } else {
                    value = ' ';
                }
                array[i][j] = value;
                System.out.print(array[i][j]);

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

Ответ №2:

вы не печатаете строку за строкой, также отсутствует элемент диагонали. Исправление этих и некоторых других незначительных изменений

         int n = 10;
        char[][] matrix = new char[n][n];
        Random rd = new Random();
        for(int i = 0; i < n; i  ) {
            for(int  j = 0; j <= i; j  ) {
                char value = rd.nextBoolean() ? '*':' ';
                matrix[i][j] = value;
                matrix[j][i] = value;
            }
        }

        for(char[] row : matrix) {
            System.out.println(row);
        }