Untitled
unknown
plain_text
2 years ago
1.5 kB
3
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