Помогите понять кoд

Заданы действительные числа x1, x 2,..., x16.
Получить x1, x 3,...,x15, x2, x4,..., x16.

#include <iostream>
#include<windows.h>

using namespace std;




int main() {

    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    int arr[16]{ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    int temp;
    int s ;

    for (int i = 0, j = 1; j < 16; j += 2, i++) {
        temp = arr[j];
        for (s = j; s > i; s--) {
            arr[s] = arr[s - 1];
        }
        arr[i] = temp;
    }
    
    for (int i = 0; i < 16; i++
        ) {
        cout << arr[i] << "\t";
    }


}

Ответы (1 шт):

Автор решения: Иван Павлов

Каким образом происходит перемещение четных чисел в правую сторону, а нечетных в левую. В переменную temp записывается поитерационно (каждый раз как проходит цикл for) одно значение нечетного числа массива arr, далее меняется сам массив и сдвигается вправо на одну позицию, начиная с того места, где была взята переменная temp, потом та переменная, что была сохранена в temp записывается в начало массива
arr[i] = temp(нечетное число).
А потом просто массив целиком выводится на экран. Если что непонятно спрашивай.

→ Ссылка