#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);
}