Один большой массив и два маленьких

  • 4
  • Недоступна
Жил-был массив, и был он большой. В какой-то степени, разумеется. И были у него два приятеля-массива, которые были вдвое меньше. Наша задача — манипуляция этими ребятами. Числа из большого массива мы должны перенести в два маленьких (в порядке очереди), а затем второй маленький массив вывести на экран. Справитесь?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (128)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Sergey Vladimirovich7 уровень, Москва
среда, 19:38
C помощью этой статьи решил https://javadevblog.com/kak-skopirovat-massiv-v-java.html
Евгений7 уровень, Харьков
среда, 16:22
Простым копированием в цикле аля a[i]=b[i] не удалось решить, вылезала ошибка синтаксиса.Но как-то можно, примеры внизу это подтверждают. Начал искать методы для копирования содержимого массивов. copyOf почему-то у меня тоже не зашел, так и не понял, что не так делал. А System.arraycopy норм. Он принимает в себя 5 аргументов, 2 из них - имена массивов, 3 - численные значения.Путем подбора понял, как именно осуществляется сдвиг, и забор элементов массива для копирования (например, с 1 по 10 или с 5 по 15 или с 10 по 20), в зависимости от того, какие числа вводишь в качестве параметров. Заодно понял, что вывести массив вне цикла без каких-либо приспособлений (а как с ними - так и не понял, как реализовать) - нельзя, потому что суть цикла в том и заключается, чтобы вывести много строк/чисел вместо одной. Каждая задача, даже если ее не удается решить самому, не лазая в интернет за дополнительніми справками, дает +100 к опыту. Надеюсь, что все проблемные нюансы как-то отложатся в голове, и в следующий раз, скажем, через месяц, если мне попадется эта же проблема вновь, я уже смогу разобраться быстрее, а не искать опять по новой.
Vladimir10 уровень
понедельник, 20:29
не могу решить
Александр7 уровень, Москва
17 марта, 15:58
/* Комментарий удален */
АртемGeek11 уровень, Москва
6 марта, 11:36
Сначала хотел сделать два for для обоих присваиваний, но задумался зачем расширять код, если можно добавить ветвление if , которой определяет индекс. Для тех, кто сделал можете посмотреть
Pavel Kurashov9 уровень, Новосибирск
17 февраля, 14:10
По моему они нам просто морочат голову, или ленятся с нормальным валидатором: Я вообще не стал заносить значения в массив, а просто сразу вывел вторую половину ввода.
for (int i = 0; i < 10; i++) rd.readLine();
for (int i = 10; i < 20; i++) System.out.println(rd.readLine());
Alexander Seychas8 уровень
7 февраля, 10:29
Для заполнения второго маленького массива использовался цикл с новой переменной, но без добавления к ней 1, валидатор принял даже такое решение, но разве при нем не заполняется только ячейка с индексом 0, а все остальные остаются пустыми? Делает только: принял - вывел, принял - вывел... А заполнение не происходит, разве нет? int a = 0; for (int i = 10; i < 20; i++){ small2[a]= big[i]; System.out.println(small2[a]); //a++; закомментирована }
Vladlen Arkanov9 уровень
15 февраля, 13:16
Можно (и оптимальнее) заполнить оба массива в одном цикле. Первые 10 чисел в первый "маленький массив", остальные - во второй. Зачем плодить сущности сверх необходимого.
Марина 9 уровень, Москва
23 января, 13:25
удивительно, но это единственная задача из этой лекции, которая далась с первого раза
Artem Pavlov7 уровень, Санкт-Петербург
17 января, 03:11
/*Метод System.arraycopy() принимает несколько параметров. Первым параметром является массив-источник. Вторым параметром является позиция начала нового массива. Третий параметр — массив-назначения. Четвертый параметр является начальным положением целевого массива. Последний параметр это количество элементов, которые будут скопированы.*/ System.arraycopy (numbers, 0, numbers2, 0, 10); System.arraycopy (numbers, 10, numbers3, 0, 10);
Nordis12 уровень, Санкт-Петербург
27 января, 22:35
Спасибо, твой коммент был полезен. Из за того что не знал что делает последний элемент провозился час.
Denis7 уровень
25 февраля, 20:42
Спасибо, не мог понять для чего нужен последний параметр после твоего коммента задачу решил
Red Lee16 уровень, Москва
27 декабря 2018, 23:13
Данный код не проходит проверку: int[] numBig = new int[20]; int[] num1 = new int[numBig.length / 2]; int[] num2 = new int[numBig.length / 2]; нужно явно указать int[] num1 = new int[10];