Подскажите с кодом c++
задача - Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы массива с четными
и нечетными индексами (т.е. те элементы массива, которые стоят на четных местах, поменяйте с элементами,
которые стоят на нечетных местах).
почему-то у меня цикл не отрабатывает
По дате
По Рейтингу
12345678910111213141516171819202122232425262728293031323334353637383940414243
// C++20
#include <array>
#include <iostream>
#include <random>
#include <span>
constexpr size_t length = 20;
using namespace std;
using int_t = int;
using array_t = array<int_t, length>;
void show(const span< int_t>& sequence) {
for (auto value : sequence) cout << value << ' ';
cout.put('\n');
}
void fill_random(array_t& sequence, int_t a, int_t b) {
if (b < a) swap(a, b);
uniform_int_distribution uid(a, b);
mt19937 gen{ random_device()() };
for (auto& value : sequence) value = uid(gen);
}
void exchange_of_neighbors(array_t& sequence) {
auto p_left = to_address(sequence.begin());
auto p_right = to_address(next(sequence.begin()));
const auto p_end = to_address(sequence.end());
while (p_right < p_end) {
iter_swap(p_left, p_right);
p_left += 2;
p_right += 2;
}
}
int main() {
array_t sequence{};
fill_random(sequence, 10, 99);
show(sequence);
exchange_of_neighbors(sequence);
show(sequence);
cin.get();
}
Кот завут бисмарк мой харощи имя?
Больше по теме