Двумерные массивы в С++ - где ошибка?

Мне нужно сделать сдвиг вправо в двумерном массиве и я придумал только такой метод (через переприсвоение значений), но программа не хочет етого делать и просто выводит один и тот же масив.

const int SIZE_X = 3, SIZE_Y = 3;
int arr[SIZE_Y][SIZE_X];

for (int i = 0; i < SIZE_Y; i++)
{
    for (int j = 0; j < SIZE_X; j++)
    {
        arr[i][j] = rand() % 10;
    }
}
for (int i = 0; i < SIZE_Y; i++)
{
    for (int j = 0; j < SIZE_X; j++)
    {
        int num = 0;
        num = arr[i][1];
        arr[i][1] = arr[i][0];
        arr[i][0] = arr[i][2];
        arr[i][2] = num;
    }
}

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

Автор решения: Mikhailo

Этот код

for (int j = 0; j < SIZE_X; j++) 
{
    int num = 0;
    num = arr[i][1];
    arr[i][1] = arr[i][0];
    arr[i][0] = arr[i][2];
    arr[i][2] = num;
}

SIZE_X раз выполняет смещение на один элемент. Так как всего элементов SIZE_X - массив переходит в исходное состояние, сделав круг.

→ Ссылка