public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] ints = new int[20];
for (int i = 0; i < ints.length; i++) {
ints[i] = Integer.parseInt(reader.readLine());
}
int[] ints1 = new int[10];
int[] ints2 = new int[10];
for (int i = 0; i < ints.length - 10; i++) {
ints1[10] = ints[i];
}
for (int j = 10; j < ints.length; j++) {
ints2[10] = ints[j];
System.out.println(ints2[j]);
}
}
}
В чём ошибка?
Карбофос Огарин
14 уровень
ПАМАГИТИ!
Обсуждается
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
16 января 2021, 12:41
здесь будет исключение, обращение к индексу за пределами массива
0
Карбофос Огарин
16 января 2021, 12:47
А как его избежать ?
0
hidden #2322530
16 января 2021, 12:48
почитать как устроенны массивы в java
https://javarush.com/groups/posts/massivy-java
на будущее, рекомендую учиться искать неизвестную информацию до того, как обращаться за помощью. это полезный навык в этой профессии
0
Карбофос Огарин
16 января 2021, 12:49
Спасибо!
0
hidden #2322530
16 января 2021, 12:51
а уже если и после этого ты не смог разобраться, или вроде получается, но чего-то не хватает. то тогда обращаться за помощью к другим. и с не со словами "помогите, что тут не так", а с конкретными вопросами.
0
Карбофос Огарин
16 января 2021, 13:48
Всё равно не понимаю логику. Вот
for (int i = 0; i< ints.length/2 - 1;i++)
ints1[i] = ints[i];
//System.out.println(Arrays.toString(ints1));
for (int j = 10; j < ints.length - 1;j++ )
ints2[j] = ints[j];
System.out.println(Arrays.toString(ints2));
}
}
В первой итерации массив ints1 выводит всё правильно.
Во втором я всё равно выхожу за границу массива, не пойму как.
Ведь я установил значение J=10, соответственно отсчёт начинается с 10 строчки, далее он пробегает всю длину массива, начиная с 10 и заканчивая 20. За пределы массива он выйти не может. Почему он выходит за пределы тогда?
0
hidden #2322530
16 января 2021, 13:51
чем это отличается от
0
Карбофос Огарин
16 января 2021, 14:01
ints2[10] - это количество пустых ячеек в массиве. Инт j прогоняет массив в указанном диапазоне
0
hidden #2322530
16 января 2021, 14:03
сходи по ссылке и перечитай ещё раз заново статью.
+2
МирославExpert
19 января 2021, 07:15
for (int i = 0; i < 20; i++) {
if (i < 10) {
partA[i] = bigArr[i];
}
if (i >= 10) {
int j = i - 10;
partB[j] = bigArr[i];
(Один из вариантов сравнения и заполнения ) А у тебя ints2[10] это индекс ячейки(номер комнаты) А int[] ints1 = new int[10]; (тут 10 по твоей логике не размер массива а прогон в указанном диапазоне тоже)
то-есть ints2[10] = ints[j]; Эта строка в массив ints2 запишет в ячейку [10] = значения от массива ints в диапазоне [j]; поверх до конца цикла!
+2