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

  • 5
  • Недоступна
Жил-был массив, и был он большой. В какой-то степени, разумеется. И были у него два приятеля-массива, которые были вдвое меньше. Наша задача — манипуляция этими ребятами. Числа из большого массива мы должны перенести в два маленьких (в порядке очереди), а затем второй маленький массив вывести на экран. Справитесь?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (201)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Psiholirik7 уровень, Мариуполь
позавчера, 20:26
Arrays.copyOfRange
Alexey Seliverstov10 уровень, Новосибирск
позавчера, 08:29
используйте array copy !!
Scanner in = new Scanner(System.in);
  int[]a = new int[20];
  int[]b = new int[10];
  int[]c = new int[10];
  for(int i = 0; i < 20; i++) a[i] = in.nextInt();
  System.arraycopy(a,0,b,0,10);
  System.arraycopy(a,10,c,0,10);

  for(int x : c) System.out.println(x);
Антон Борисенко8 уровень, Москва
17 февраля, 16:28
отличная статья по теме https://javarush.ru/groups/posts/1933-klass-arrays-i-ego-ispoljhzovanie Советую всем прочитать, решил с ее помощью. создаем три массива, циклом заполняем большой массив, копируем значения в два маленьких, циклом выводим значения второго на экран. Ну и не забываем импортировать класс
com.Mortalitasi7 уровень, Кишинев
18 февраля, 21:10
согласен, отличная статья!
Vladimir7 уровень, Kiev
10 февраля, 13:01
Я решил с помощью 4 циклов. Можете забросать меня гнилыми помидорами, но мне все равно. Решил задачу со второго раза и то из-за неправильной инициализации маленьких массивов, которые инициализировал через
int[] имяМассива = new int[имяБольшогоМассива.length / 2];
Vladimir7 уровень, Kiev
10 февраля, 12:59
Со второй попытки. Чтобы не опростоволоситься, как я не пишите:
int[] имяМассива = new int[имяБольшогоМассива.length / 2];
Пишите просто:
int[] имяМассива = new int[10];
Aleksandr8 уровень, Wroclaw
4 февраля, 15:46
Java имет метод System.arraycopy() для копирования элементов из одного массива в другой. Работает след. образом: System.arraycopy(arrayB, 0, array1, 0, 10); arrayB - массив с которого копируем. 0 - начальная позиция копирования. array1 - первый [10] массив. 0,10 - позиции в массиве куда запишутся числа. System.arraycopy(arrayB, 10, array2, 0, 10); array2 -- второй массив [10]. Здесь начальная позиция копирования с массива [20] будет 10 элемент.
Устин9 уровень, Екатеринбург
3 февраля, 16:21
Мне иногда кажется, что после нажатия кнопки "Проверить", условия задания тайком меняются 🤣 Так как да выскакивает какая-то ошибка... Но увы это просто невнимательность. 🙈 P.S. В данной задаче успешно применил метод System.arraycopy()
Алексей9 уровень, Майкоп
25 января, 17:44
пытался создать маленькие массивы и заполнить их одной строчкой: int l2[] = Arrays.copyOfRange(l1, 0, 10) В II программа скомпелировалась и нормально отработала, но валидатор не принял. а когда разбил создание и заполнение массива на 2 строчки валидацию прошел. int l2[] = new int[10]; l2 = Arrays.copyOfRange(l1, 0, 10); Подскажите, в первом варианте ошибка, или это глюк валидатора?
Vitaly8 уровень, Минск
28 января, 14:27
это так настроен валидатор
Fors Major11 уровень, Кишинев
1 февраля, 17:52
спасибо .9 попыток и 3 раза переписан код с нуля.
Chingiz12 уровень
6 февраля, 08:40
А выражение
nt l2[] = Arrays.copyOfRange(l1, 0, 10)
не должно ли быть записано как
nt l2[] = {Arrays.copyOfRange(l1, 0, 10)}
? Может в этом ошибка? PS.. Проверил, не в этом )
Max £ Miastkovskyi 8 уровень, Нью-Йорк
16 января, 16:38
кому надо синтаксис копирования Array(куда копируешь) = Arrays.copyOfRange(Array из какого, 0, 9);
blackseaguy17 уровень, Ялта
14 января, 12:38
System.arraycopy();