Условие:
1. Создать массив на 20 чисел.
2. Ввести в него значения с клавиатуры.
3. Создать два массива на 10 чисел каждый.
4. Скопировать большой массив в два маленьких: половину чисел в первый маленький, вторую половину во второй маленький.
5. Вывести второй маленький массив на экран, каждое значение выводить с новой строки.
public class Solution {
public static void main(String[] args) throws Exception {
//создаем большой массив
int[] massivB = new int[20];
//вводим в массивБ числа с клавиатуры
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < massivB.length; i++) {
String s = reader.readLine();
massivB[i] = Integer.parseInt(s);
}
//создаем маленький массив №1
int[] massivM1 = new int[10];
//создаем маленький массив №2
int[] massivM2 = new int[10];
//копируем первую половину чисел массиваБ в массивМ1
System.arraycopy(massivB, 1, massivM1, 1, 10);
//копируем вторую половину чисел массиваБ в массивМ2
System.arraycopy(massivB, 11, massivM2, 1, 10);
//выводим числа массиваМ2 на экран
for (int i = 0; i < 10; i++) {
System.out.println(massivM2[i]);
}
}
}
После запуска и ввода 20 чисел выдает такое сообщение:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at com.javarush.task.task07.task0705.Solution.main(Solution.java:29)
Что не так? В выводе массива №2 в for ставил massivM2.length вместо 10, результат тот же.