Переставить соседние

Задача

Задан массив из $n$ целых чисел. Переставьте соседние элементы массива ($a_{0}$ с $a_{1}$, $a_{2}$ с $a_{3}$ и так далее). Если элементов нечетное количество, то последний элемент следует оставить на своем месте.

Входные данные

В первой строке записано число $n$. В следующей строке записано $n$ целых чисел. Все числа по модулю не превышают $100$.

Выходные данные

Вывести обновленный массив.

Тесты

Входные данные Выходные данные
7
3 5 -7 7 5 -9 -4
5 3 7 -7 -9 5 -4
8
-9 81 27 -38 2 6 -56 -21
81 -9 -38 27 6 2 -21 -56
2
25 -76
-76 25
3
55 44 33
44 55 33
1
99
99

Код

Решение

Чтобы поменять местами соседние элементы массива, заведем переменную, в которой и будет происходить обмен. Каждый нечетный по счету элемент меняем местами с предыдущим. Например, arr[1] с arr[0], arr[3] с arr[2] и так далее до конца массива. При этом совершенно не важно, четное кол-во элементов или нечетное.

Ссылки

Условие задачи на E-Olymp
Код задачи на Ideone

4 thoughts on “Переставить соседние

    • Вы проверили что число элементов четное и что-то сделали. Потом, вместо else, вы проверяете вдруг оно не четное. Если число не является четным, то оно естественно является нечетным. Исправьте, пожалуйста.
    • Исправили? Зашло на 100%? Молодец! Теперь удалите эту проверку вообще. Зачем она Вам нужна? Просто, чтобы повторить программу дважды? Четное количество будет или нечетное, вам в любом случае менять местами соседние элементы. Начинаете с первого. Меняете местами с нулевым. Переходите к третьему. Меняете с первым. И так до конца массива. Т.е. нечетные меняете с предыдущими.
  1. Хорошо.
    Теперь по оформлению.
    Вы оформили в пояснении элементы массива как формулы $arr[i]$. Это странно. Элементы последовательностей нужно оформлять как формулы — $a_i$. Но если Вы пишите про код, то и выглядеть все должно как в коде — arr[i]. Определитесь, о чем вы пишите и выберите способ форматирования.
    И по стилю.
    Я не могу сформулировать точно причину, но меня коробит фраза «Для перемены местами…» Конечно, из XIX века к нам пришла «охота к перемене мест» и «от перемены мест слагаемых…», но в этих фразах используется другое управление. Может написать как у Пушкина «для перемены мест»? Но я бы выбрал что-то менее архаичное.

    • Что случилось с названием? Вроде это у Вас не первая работа и на сайте найдется несколько сотен примеров оформления…
    • Очень загадочная фраза «Чтобы поменять местами соседние элементы массива, заведем переменную, в которой и будет происходить обмен». Конечно, можно делать обмен так, как у Вас или использовать функцию swap(). Но либо четко опишите процесс обмена, либо удалите это предложение.
    • Познакомьтесь, пожалуйста, этой статьей.

Добавить комментарий