Как сдвинуть массив влево?

Рейтинг: -1Ответов: 2Опубликовано: 16.01.2023

Есть функция сдвига массива на 6 позиций вправо, а как изменить именно этот цикл чтобы сдвиг был влево?

int numbersShifting(int* arr, int size) {
    int temp;
    for (int i = 0; i < 6; ++i) {
        temp = arr[size - 1];
        for (int j = size - 2; j >= 0; --j) {
            arr[j + 1] = arr[j];
        }
        arr[0] = temp;
    }
}

Ответы

▲ 1Принят

OK, вот вам сдвиг на 6 позиций влево (только для size >= 6):

void numbersShifting(int* arr, int size) {
    int temp;
    for (int i = 0; i < size-6; ++i) {
        temp = arr[size - 1];
        for (int j = size - 2; j >= 0; --j) {
            arr[j + 1] = arr[j];
        }
        arr[0] = temp;
    }
}
▲ 0
int numbersShifting(int* arr, int size) {
    int temp;
    for (int i = 0; i < 6; ++i) {
        temp = arr[0];
        for (int j = 1; j < size-1; ++j) {
            arr[j] = arr[j + 1];
        }
        arr[size-1] = temp;
    }
}