Создаем двумерный массив

  • 6
  • Недоступна
Двумерный массив — это массив массивов, то есть в каждой его ячейке находится ссылка на некий массив. Но гораздо проще его представить в виде таблицы, у которой задано количество строк (первое измерение) и количество столбцов (второе измерение). В этой задаче мы будем создавать такой массив. Для эт
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (154)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Екатерина Беттиуи
Уровень 6, Russian Federation
20 июня, 18:45
parseInt? Про это же нигде не было
Symposium
Уровень 16, United States
8 июня, 04:46
Scanner scan = new Scanner(System.in);
 int hight = scan.nextInt(); // получаем высоту массива (например 5)
 multiArray = new int[hight][]; //Для начала устанавливаем высоту массива
 for (int i = 0; i < hight; i++) { // проходим по каждой строчке массива
     multiArray[i] = new int[scan.nextInt()]; // получаем новое значение и присваиваем длину для каждой строки
 }
МихаилС
Уровень 10, Москва, Russian Federation
6 июня, 17:31
тут вроде не обсуждалось, а значит проблема редкая. Но в теории вроде ни одного примера, а я несколько часов потратил поиск ошибки, чтобы прошла валидация: При первичной инициализации(поправьте в комментах плиз!) уже объявленного! (т.е. введённого ранее, ещё по условию) двумерного массива: слева от знака присваивания - пишем просто названия массива, без всяких скобок и названия типа multiArray = new int[n][]; (а не int[][] multiArray = new int[n][];)
Peter
Уровень 13
25 мая, 15:14
Написал сам код, проверку прошел с первого раза. Открыл решение для сравнения - блин, на фига там все так сложно? Integer.parseInt(scanner.nextLine()) - такого не было в курсе, зачем писать то, что не понятно и решать так, как на данном этапе прохождения программы не возможно?? Или где-то было и я пропустил?
Никита Патрушев
Уровень 9, Уфа, Russian Federation
20 апреля, 17:33
Условия задачи как будто тренируют обучающихся к предстоящему взаимодействию с заказчиками (если кто будет устроится далее на работу по профессии). Для тех, кто хочет решить САМ, но не понимает условия и требования к задаче: 1) количество строк и столбцов в массиве должны быть определены посредством ввода параметров с клавиатуры; 2) первое введенное значение в консоли обозначит количество строк в массиве; 3) вторые и последующие введенные значения в консоли обозначат количество столбцов для каждой строки массива; 4) предполагается ввод с клавиатуры только целых чисел больше 0 (проверку можете реализовать на свое усмотрение); 5) выводить на экран ничего не нужно, но по желанию можно, например чтобы себя перепроверить (используйте length для проверки); В результате должны получить следующее: 1) первое число с консоли равно 5-ти, это значит что в массиве 5 строк; 2) следом вы для всех 5 строк, должны ввести с консоли количество столбцов, т.е. считать с консоли еще 5 значений и сразу же записать их в массив; 3) больше ничего не нужно, никаких N+1 или использование стороковых значений вместо целочисленных
Sibir2007
Уровень 12, Россия
22 апреля, 19:47
👍 Полез бы сразу почитал, не бился бы 2 часа с непонятным N + 1, реально ошибка, либо ошибка условия, либо ошибка проверки.
KirilX
Уровень 28, Минск, Belarus
13 апреля, 13:43
То ли я дурак, то ли лыжи не едут)))) Задача 2 просто блеск🤡🤡🤡
Vladislav Kazmin
Уровень 16, Санкт-Петербург, Russian Federation
3 апреля, 12:02
Зачем в правильном решении nextline? зачем к нему приводить если в условии сказано что будут числа? зачем n +1? все прекрасно прошло с таким кодом
public static void main(String[] args) {
          Scanner scan = new Scanner(System.in);
             int num1 =  scan.nextInt();
             multiArray = new int[num1][];
                    for(int i = 0; i < multiArray.length; i++){
                          multiArray[i] = new int [scan.nextInt()];
                     }
Apolona Solar
Уровень 11, United States
26 апреля, 14:53
Здравствуйте! Объясните, пожалуйста, свой код?
Private Joker
Уровень 6, Москва, Россия
30 марта, 12:25
Убрал в IDE строки Integer.parseInt(scanner.nextLine()); и все что с этим связанно и заменил их на стандартные nextInt(); Все работает. Зачем нужна было придумывать эту эпидерсию, которую даже не проходили хз. И все решение заключается в том, чтобы создать массив с количеством строк равных n. Это будет типа индекс [i] Дальше создаем один цикл, который создаем ячейки [j]. Где i меньше n, так как задаем в цикле количество строк. А ниже создаем переменную j в которую записываем числа из консоли. Дальше создаем количество ячеек (массив[индекс]= new int[j] ну и вывести это решением из задачи про треугольник, чтоб посмотреть, что получилось. В итоге получается задача уровня изи.
Gumanitarii
Уровень 8, Russian Federation
27 марта, 16:21
Хард - тут это про понимание. Условия - предельно понятны. Требования - ппц запутывают. че за Н+1? хто ита? просто считываем с клавы количество ячеек и считываем оттуда же количество вложенных ячеек. все! никаких Н+1 и прочей ерунды. Вот, реально, зачем я голову ломал столько времени, чтоб понять требования? не понял и полез в комменты. Лучше не стало, но понял, что подложили Н+1 )))) кек) решил сам. напишу себе хвалебный цикл ахахах))))
Mars
Уровень 14, Istanbul, Turkey
20 апреля, 21:07
N строк будет в массиве, а введенных чисел с клавиатуры N + 1. Сначала вводим число N (в примере 5), а всего введено с клавиатуры N + 1 (6 чисел).
Sibir2007
Уровень 12, Россия
22 апреля, 19:42
На мой взгляд, ваша логика не верна, так как Input data для валидации имеет 7 значений, а это значит, что должно работать условие N + 1 в том понимании как оно есть, т.е. при введении значения строк увеличивать на 1. Но беда вся в том, что при выполнении данного условия программа не проходит проверку, а без него все проверяется нормально, сам на этом попался. Думаю, нужно чтоб админ поправил либо проверку, либо условие (убрать N + 1 и последнюю строку 8423 в Input data)
Hey_peeeach
Уровень 16, Москва, Russian Federation
27 марта, 14:10
omg... для тех, кто такой же тугой как я и судорожно пытается вывести массив на экран - этого делать не надо. цикл в цикле не нужен, а значит и soup нам тоже не сдался. я не удержалась и тыкнула "правильное решение". зря расписывала все для вывода, сама запуталась в этих условиях. очень тяжко идут массивы, очень..
Gumanitarii
Уровень 8, Russian Federation
27 марта, 16:02
перебираю различные шаблоны, чтоб получился результат, но не совсем осознаю что делаю. Да, массивы это пипец. а вывод на экран - на автомате, чтоб видеть, че у тя получилось. ну и дебаггером не всегда получается нормально пользоваться.)
Hey_peeeach
Уровень 16, Москва, Russian Federation
27 марта, 16:55
дада, вывел на экран - закрыл гештальт😄
Gumanitarii
Уровень 8, Russian Federation
27 марта, 18:11
скорее "вывел на экран - увидел, че наделал"))