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

  • 5
  • Недоступна
Жил-был массив, и был он большой. В какой-то степени, разумеется. И были у него два приятеля-массива, которые были вдвое меньше. Наша задача — манипуляция этими ребятами. Числа из большого массива мы должны перенести в два маленьких (в порядке очереди), а затем второй маленький массив вывести на экран. Справитесь?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (299)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Саша
Уровень 11, Гродно, Беларусь
6 октября, 19:48
можно было конечно и не создавать new int[10], а сразу объявить и присвоить результат copyOfRange(), но что-то решение не проходило
int [] b = new int [10];
       int [] c = new int [10];
       b = Arrays.copyOfRange(a, 0, a.length/2);
       c = Arrays.copyOfRange(a, a.length/2, a.length);
       for (int i: c){
           System.out.println(i);
       }
Valeriy Kihaev
Уровень 8, Самара, Россия
10 октября, 17:06
Вот и у меня та же проблема, бился полчаса, потом ваш комент нашел)
Максим
Уровень 18
11 сентября, 07:53
По мере прохождения квеста количество ввода с клавиатуры растёт.
Van Rar
Уровень 14, Zelenograd
7 сентября, 17:54
можно в одном for, просто индекс + 10, думаю догадаетесь о чём я 🙃
Alexx Dorofeev
Уровень 10, Санкт-Петербург
3 июня, 13:59
Коллеги, помогите разобраться. Почему меня валидатор не пропускает ?:)
for (int i = 0; i<20; i++) {
     s = br.readLine();
     m_20[i] = Integer.parseInt(s);
 }
 for (int i=0;i<10;i++) {
     m_10_1[i] = m_20[i];
 }
 for (int i=9;i<20;i++) {
     m_10_2[i] = m_20[i];
     System.out.println(m_10_2[i]);
 }
Yakov Bashkurov
Уровень 10, Тобольск, Россия
22 июня, 16:33
в 8 строке ошибка. i=9, а должно быть i=10
Дима
Уровень 13, Новая Каховка, Украина
2 июля, 17:56
А мне кажется что ошибка в том что массив "m_10_2" имеет ячейки от 0 до 9, а согласно третьему циклу for (с 8 по 10 строку) в него пытаются впихнуть значения 9 и выше.
Konstantin Stepanyuk
Уровень 8
31 июля, 12:16
этот кусок кода не особо читаем без строк создания массивов. но если вы делали как и в примерах то все ваши массивы имеют такой вид *int[] m_10_2 = new int[10]* ,а вы пытаетесь выйти за его пределы, в общем, не там вы циферки увеличиваете=) я тож мин на 10 залип, пока не дошло =)
Сергей
Уровень 10, Киев, Украина
4 мая, 14:59
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int[] arr = new int[20]; for(int i=0; i < arr.length; i++){ arr[i] = Integer.parseInt(reader.readLine()); } int[] arr1 = new int[10]; arr1 = Arrays.copyOfRange(arr, 0, 10); int[] arr2 = new int[10]; arr2 = Arrays.copyOfRange(arr, 10, arr.length); System.out.println(Arrays.toString(arr2)); Решение на экран выдает правильное, но не проходит валидацию по четвертому условию... Что может быть не так?
维克多 船长
Уровень 7, Москва, Россия
18 мая, 19:06
Что в итоге было не так?
Сергей
Уровень 10, Киев, Украина
19 мая, 04:17
не знаю. так и не разобрался. передрал решение из готового)
Артем
Уровень 9, Санкт-Петербург
3 июня, 09:38
Возможно это связано с тем. что метод Arrays.toString преобразует массив в строку (в одну), а по условию "каждое значение выводить с новой строки".
Елена
Уровень 19, Санкт-Петербург
13 сентября, 12:18
может быть arr1 не вывели в консоль?
Андрей
Уровень 16, Москва
28 апреля, 15:54
Сделал сортировку через ArrayList, все получилось, только задание не до кноца выполнил пришлось по приколу создать 3 массива, которые ничего не делают и задание выполнилось))
int numberss[] = new int[20];
int numberss1[] = new int[10];
int numberss2[] = new int[10];
Андрей
Уровень 16, Москва
28 апреля, 15:58
"Программа должна считывать с клавиатуры 20 чисел для большого массива." - этот пункт выполнен, программа считывает данные для массива, а этот пункт не выполнен, хотя массив есть 🤣 "Программа должна создавать большой массив на 20 целых чисел." сломал систему, всем хацкерам йоу!
new Dog("тузік")
Уровень 11, Киев
20 марта, 16:22
Тут уже писали, просто хочу подтвердить, что для решения этот задачи очень полезна статья Класс Array
Boris Gretskis
Уровень 9, Могилев
4 марта, 14:23
System.arraycopy(arr,0, arr2,0,arr2.length); System.arraycopy(arr,arr2.length, arr3,0,arr3.length); System.out.println(Arrays.toString(arr3)); Вывод [2, 2, 2, 3, 4, 5, 5, 5, 5, 5] . Валидатор в свою очередь !!!! - Программа должна скопировать одну половину большого массива в первый маленький, а вторую - во второй и вывести второй маленький массив на экран. в каком виде должен быть массив?
Святослав
Уровень 17, Одесса
22 февраля, 18:42
Для копирование массивов есть специальный метод System.arraycopy() Вот тут за три минуты наглядно показано как его использовать https://www.examclouds.com/ru/java/java-core-russian/system-arraycopy
Дмитрий
Уровень 31, Москва
16 февраля, 10:35
мой "костыль" стайл for (int i = 0; i < num.length; i++){ if (i<10) num1[i] = num[i]; else {num2[i-10] = num[i]; System.out.println(num2[i-10]); } }
Тимур Акматов
Уровень 18, Бишкек, Кыргызстан
5 марта, 15:15
могу сказать одно!! гениально ))))