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

  • 6
  • Недоступна
Двумерный массив — это массив массивов, то есть в каждой его ячейке находится ссылка на некий массив. Но гораздо проще его представить в виде таблицы, у которой задано количество строк (первое измерение) и количество столбцов (второе измерение). В этой задаче мы будем создавать такой массив. Для эт
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (202)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Полина
Уровень 9
13 ноября, 22:45
public class Solution { public static int[][] multiArray; public static void main(String[] args) { Scanner in = new Scanner(System.in); multiArray = new int[in.nextInt()][]; for (int i = 0; i < multiArray.length; i++){ multiArray[i] = new int[in.nextInt()]; } } }
Artur Kupchenko
Уровень 23
28 октября, 09:34
Жесткий троллинг. Долго выводил в консоль [ ]. Хотя это даже не нужно делать)
Aperantim Руководитель методическог в КодКласс/Кружки Учи.
23 октября, 13:48
package com.company;
import java.util.Scanner;

public class Main {
    public static int[][] multiArray;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        multiArray = new int[N][];

        for (int i = 0; i < multiArray.length; i++) {
            int numberOfElements = sc.nextInt();
            multiArray[i] = new int[numberOfElements];
        }
    }
}
Alexander Vybornov Engineer в JINR
24 октября, 20:13
Эх, у гениев решения похожи, хах)
Evgenii #3199250
Уровень 21
1 ноября, 05:15
Подскажите, почему у меня выходит ошибка, когда в 11 строке я пишу так: int[][] multiArray = new int[N][]; Разве это ошибка? IntelliJ IDEA на это не ругается
Tony P
Уровень 11
7 ноября, 20:31
Наверно потому что ты пытаешься второй раз создать двумерный массив multiArray. Создан он был в 5 строке, точнее переменная двумерного массива multiArray была создана в 5 строке. И в 11 строке нужно создать объект двумерного массива, указав количество строк N. Попробуй просто убрать int[][] в начале 11 строки.
SVCH
Уровень 14
8 ноября, 11:25
Scanner scanner = new Scanner(System.in);
multiArray = new int[scanner.nextInt()][];
for (int i = 0; i < multiArray.length; i++) {
    multiArray[i] = new int[scanner.nextInt()];
}
Evgenii #3199250
Уровень 21
8 ноября, 17:29
Но код компилируется. Спасибо! Сейчас понимаю, что в моем примере создается новая ссылка на массив и происходит затенение ссылки, объявленной в 5 строке.
Westender
Уровень 14
23 октября, 09:50
public class Solution { public static int[][] multiArray; public static void main(String[] args) { Scanner console = new Scanner(System.in); int lineQuantity = console.nextInt(); int[] array = new int[lineQuantity]; for (int i = 0; i < array.length; i++) { array[i] = console.nextInt(); } multiArray = new int[lineQuantity][]; for (int i = 0; i < multiArray.length; i++) { for (int j = 0; j < array[i]; j++) { System.out.print("[ ] "); } System.out.println(); } } } Не принимает последнее требование. Может кто то объяснить почему?
Anna Kudra
Уровень 10
21 октября, 13:47
Задача решается легко, но я потратила полтора часа!! на то, чтобы найти как вывести в консоль этот массив. А оказывается этого вообще делать не нужно! В моем варианте он, естественно был заполнен "Null"ями, а я искала как сделать, чтобы было как в примере [][]. Поражаюсь своей невнимательности..Есть тут еще такие же "тупни" как я?)))
Денис
Уровень 8
14 ноября, 17:19
как штык)
Захар Прилуков
Уровень 11
18 октября, 13:53
public class Solution { public static int[][] multiArray; public static void main(String[] args) { Scanner console = new Scanner(System.in); multiArray = new int[console.nextInt()][]; for(int i = 0; i < multiArray.length;i++) multiArray[i] = new int[console.nextInt()]; //напишите тут ваш код } } самое простое решение
Anonymous #3129364
Уровень 7
13 октября, 07:20
Где-то пропустил в лекции, объясните пожалуйста, почему ругается на неизвестную переменную если записать public static int[][] multiArray; multiArray = new int[][]; но всё ОК, если multiArray присвоить в методе main.
Anonymous #3183325
Уровень 16
17 октября, 20:02
Потому что инструкция в Java и во многих похожих языках может быть только внутри метода (в вашем случае он один - main), конструктора или блока инициализации.
Anonymous #3026554
Уровень 18
12 октября, 21:01
Как по мне, задача не соответсвует заявленному уровню сложности. Задача решается легко, думаю следует изменить заявленную сложность.
Key
Уровень 10
29 сентября, 05:00
Задача решается просто, но из-за описания ты начинаешь значительно усложнять(
KIRS
Уровень 26
28 сентября, 10:57
как-то просто решил: Scanner scanner = new Scanner(System.in); multiArray = new int[scanner.nextInt()][]; for (int i = 0; i< multiArray.length; i++) { multiArray[i] = new int[scanner.nextInt()];
Anonymous #3172640
Уровень 7
30 октября, 16:33
не знал, что внутри скобок массива можно сразу указывать источник. это сильно облегчает и упрощает код