Untitled

 avatar
unknown
plain_text
a year ago
1.5 kB
1
Indexable
#include <stdio.h>

void shiftArray(int* arr, int n, int c) {
    // Функция для выполнения одного шага сдвига влево
    void shiftLeftOnce(int* arr, int n) {
        int temp = arr[0];
        for (int i = 0; i < n - 1; i++) {
            arr[i] = arr[i + 1];
        }
        arr[n - 1] = temp;
    }

    // Функция для выполнения одного шага сдвига вправо
    void shiftRightOnce(int* arr, int n) {
        int temp = arr[n - 1];
        for (int i = n - 1; i > 0; i--) {
            arr[i] = arr[i - 1];
        }
        arr[0] = temp;
    }

    // Выполнение сдвига в зависимости от знака числа c
    if (c > 0) {
        for (int i = 0; i < c; i++) {
            shiftLeftOnce(arr, n);
        }
    } else {
        for (int i = 0; i < (-c); i++) {
            shiftRightOnce(arr, n);
        }
    }
}

int main() {
    int n, c;
    printf("Введите количество элементов массива: ");
    scanf("%d", &n);

    int A[n];
    printf("Введите элементы массива: ");
    for (int i = 0; i < n; i++) {
        scanf("%d", &A[i]);
    }

    printf("Введите число для сдвига: ");
    scanf("%d", &c);

    shiftArray(A, n, c);

    printf("Массив после сдвига: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", A[i]);
    }
    printf("\n");

    return 0;
}
Editor is loading...
Leave a Comment