Циклически сдвинуть элементы массива на К разрядов вправо - C (СИ)
Формулировка задачи:
Помогите пожалуйста написать вот такую программку:
Ввести массив целых чисел длиной n (n < 30). Циклически сдвинуть элементы массива на К разрядов вправо, к нужно вводить с клавиатуры.
Код к задаче: «Циклически сдвинуть элементы массива на К разрядов вправо - C (СИ)»
#include <stdio.h> #include <stdlib.h> void reverse(unsigned a[], unsigned n) { for (unsigned i = 0, j = n - 1; i < j; ++i, --j) { unsigned tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } #define N 30u #define K 5u int main() { unsigned a[N]; for (unsigned i = 0; i < N; ++i) a[i] = i; for (unsigned i = 0; i < N; ++i) printf("%u ", a[i]); printf("\n"); reverse(a, K); reverse(a + K, N - K); reverse(a, N); for (unsigned i = 0; i < N; ++i) printf("%u ", a[i]); printf("\n"); }
13 голосов, оценка 3.615 из 5
СОХРАНИТЬ ССЫЛКУ