agenda_nati
@agenda_nati

Как правильно заполнить многомеремный массив?

Всё шло гладко, пока однажды на меня не свалилось задание нарисовать из иксов один большой икс. Я смог сделать это через цикл, однако преподаватель сказал попробовать использовать в этом задании многомерный массив, после чего я окончательно запутался.

class Loader {

    public static void main(String[] args) {


        int size = 7;

        String [] [] array = new String[size-1][size-1];


        for (int i = 1; i < size; i++) {
            for (int j = 1; j < size; j++) {
              .// заполнить массив
            }
        }


        for (int i = 1; i < size; i++) {
            for (int j = 1; j < size; j++) {
               // распечатать массив
            }
        }
    }
}
  • Вопрос задан
  • 1872 просмотра
Решения вопроса 1
@Koshkasobaka
Не поняла почему при объявлении массива ты указываешь его размер как [size-1][size-1], тебе нужен массив 6x6 или 7x7? В моем примере будет 7x7. В качестве переменных String не нужен, тебе же всего один символ нужен, поэтому лучше использовать сhar
Заполняем:
char[][] array = new char[size][size];
        char tic = 'x';
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if (j == i || j == array.length - 1 - i)
                    array[i][j] = tic;
            }
        }


Выводим на экран в виде матрицы:
for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j] + " ");
            }
            System.out.println();
        }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ads83
В двумерном массиве "Х" - это две большие диагонали. Их заполнить можно без вложенных циклов:

public void fillX(String[][] array) {
  for (int i=1; i<size; i++) {
    array[i][i] = "x" // главная диагональ
    array[i][size-i] = "x" // побочная диагональ
  }
}

Привыкай использовать методы, пригодится уже довольно скоро.

С выводом все просто: используем во вложенном цикле print, чтобы не было перехода на новую строку, и println без параметров для начала новой строки во внешнем цикле.
Я намеренно не пишу код, а описываю его словами, чтобы у тебя была возможность написать самому и потренироваться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы