#java #multidimensional-array
Вопрос:
Привет 🙂
Мне нужно создать таблицу для мест и рядов кинотеатра (как на картинке), но я не могу понять, как напечатать номера строк с левой стороны. Мне удалось собрать воедино места и номера в верхней части стола, но мне не удается добавить столбец с номерами с левой стороны. Может быть, вы, ребята, могли бы дать мне несколько советов? Вот код!
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int seat = scanner.nextInt();
char[][] array = new char[row][seat];
System.out.print(" ");
for (int i = 1; i < seat 1; i )
System.out.print(i " ");
System.out.println();
for (int i = 0; i < array.length; i ) {
System.out.print(" ");
for (int j = 0; j < array[i].length; j )
System.out.print('S' " ");
System.out.println();
}
Ответ №1:
Это больше похоже на простую задачу программирования, чем на вопрос java. Существует много уродливых решений, но мы постараемся следовать принятым вами правилам.
Подумайте о массивах и циклах, которые вы используете шаг за шагом. Первый цикл
for (int i = 1; i < seat 1; i ) {
if (i == 1) {
System.out.print(" ");
}
System.out.print(i " ");
}
Предпочтительным способом является отсчет от 0, но этот цикл просто заполняет первую строку числами.
Во втором цикле i
все еще ваш счетчик строк, и j
это просто счетчик столбцов:
for (int i = 0; i < array.length; i ) {
for (int j = 0; j < array[i].length; j ) {
if (j == 0) {
System.out.print(" ");
}
System.out.print('S' " ");
}
System.out.println();
}
Ваш вопрос действительно таков: как писать числа в первом столбце строка за строкой. На этот вопрос есть простой ответ, используя только что предоставленный вами код. В вашем коде, если столбец j
равен 0, то сейчас вы просто пишете пустое пространство, но вместо этого вы хотите записать номер строки i
. Я надеюсь, что это даст вам ключ к разгадке. Попробуйте решить ее самостоятельно. Если вы все еще не сможете, то:
Измените, если тело секунды для во втором цикле на System.out.print(i » «);