Вот как я реализовал метод reverseArray:
public static void reverseArray(int[] array) {
int a = array.length-1;
for (int i = 0; i < array.length; i++) {
array[i] = array[a];
a--;
}
}
Вывод:
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
0, 9, 8, 7, 6, 6, 7, 8, 9, 0,
Как можно заметить на пятом цикле, число 6 не заменяется значением 5, соответственно числа дальше 6-ти, тоже не заменяются значениями из переменной "a"; Вопрос, почему? Что препятствует дальнейшей замене массива, после 5-ого цикла???
Игорь Топоров
14 уровень
Прошу помощи люди
Решен
Комментарии (14)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
19 января 2022, 12:14
Когда ты вот тут присваиваешь первой ячейке массива значение из последней ячейки (записываешь туда 0)
куда девается то значение, которое было в первой (т.е. единица)? 0
Игорь Топоров
19 января 2022, 12:25
Ксения, спасибо большое что отозвалась. Ты хочешь сказать, что единица в последуйщем накдиывается сверху на цикл? Но тогда первые бы значения, такие как, 0, 9, 8, 7, и 6 имели бы такие числа: 1, 10, 10, 10, 10....
0
Ksenia Volkova Java Developer в DXC Master
19 января 2022, 12:31
Нет.
Смотри
Где теперь двойка? 0
Игорь Топоров
19 января 2022, 12:33
А, там же и осталась :), в переменной a, но мы пятёрку присвоили и переменной a, хмм.. и после этого переменная "a" имеет значение 5 и после этого так будет всегда, пока снова не переприсвоим
0
Ksenia Volkova Java Developer в DXC Master
19 января 2022, 12:34
Да, теперь переменная a имеет значение 5 и переменная b имеет значение 5.
А где 2?
0
Игорь Топоров
19 января 2022, 12:35
Получается ни где, это число исчезло из памяти
0
Игорь Топоров
19 января 2022, 12:52
Ксения, смотрите что у меня получилось благодаря вашим советам:
public static void reverseArray(int[] array) {
int a = array.length;
for (int i = 0; i < array.length; i++) {
array[0] = 0;
array[i] = a;
a--;
}
}
Вывод:
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
0, 9, 8, 7, 6, 5, 4, 3, 2, 1,
0
Ksenia Volkova Java Developer в DXC Master
19 января 2022, 12:52
Вот так и в массиве.
Когда ты в первую ячейку помещаешь значение из последней, ее прежнее содержимое теряется.
0
Ksenia Volkova Java Developer в DXC Master
19 января 2022, 12:54
А если в массиве будут числа
5, 12, -1, 29, 0, 48
0
Игорь Топоров
19 января 2022, 12:55
ДА, это жесть, а сортировка пузырьком тут поможет?
0
Ksenia Volkova Java Developer в DXC Master
19 января 2022, 12:58
Нет. )) Тебе ведь не надо тут ничего сортировать.
Перевернуть массив куда проще, чем отсортировать.
+2
Игорь Топоров
19 января 2022, 13:01
Ты права Ксения. Ну чтожь, буду искать решение, коды из других вопросов пользоваталей, для меня слишком, не то чтобы сложны, ну, неразборчивы, к примеру зачем делят arrays.length / 2 и т.д, хочу найти свой варриант решения, задача не сложная, нужно просто разобраться что куда. Спасибо что уделила время :)
0
Игорь Топоров
25 января 2022, 11:24
Всё получилось Ксения, наконец то нашёл время и сел думать, взял тетрадку с ручкой, всё пререосмыслил, прколял ествественно, но потом осинило и всё стало на свои места, теперь я понимаю, как меняется порядок массива. Спасибо тебе за советы). Оказалось, что в одном цикле выполняются сразу же два действия, меняется сначала место массива в начале, после этого в конце и так 5 раз, умно!
0
Ksenia Volkova Java Developer в DXC Master
25 января 2022, 12:32
👍
Тетрадка с ручкой иногда очень сильно помогают )
+1