Задача
Задан массив из $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 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> using namespace std; int main() { int n; cin >> n; int arr[n]; for(int i = 0; i < n; i++){ cin >> arr[i]; } for(int i = 1; i < n; i+=2){ int q = arr[i]; arr[i] = arr[i-1]; arr[i-1] = q; } for(int i = 0; i < n; i++){ cout << arr[i] << " "; } return 0; } |
Решение
Будем переставлять соседние элементы массива следующим образом: arr[1] с arr[0], arr[3] с arr[2] и так далее до конца массива (т.е. каждый нечетный по счету элемент меняем местами с предыдущим). При этом совершенно неважно, четное кол-во элементов или нечетное.
Ссылки
Условие задачи на E-Olymp
Код задачи на Ideone
Спасибо, исправила.
Хорошо.
Теперь по оформлению.
Вы оформили в пояснении элементы массива как формулы $arr[i]$. Это странно. Элементы последовательностей нужно оформлять как формулы — $a_i$. Но если Вы пишите про код, то и выглядеть все должно как в коде — arr[i]. Определитесь, о чем вы пишите и выберите способ форматирования.
И по стилю.
Я не могу сформулировать точно причину, но меня коробит фраза «Для перемены местами…» Конечно, из XIX века к нам пришла «охота к перемене мест» и «от перемены мест слагаемых…», но в этих фразах используется другое управление. Может написать как у Пушкина «для перемены мест»? Но я бы выбрал что-то менее архаичное.
Спасибо большое, постаралась исправить.