1 Востаннє редагувалося Replace (21.11.2012 20:06:59)

Тема: Динамічні масиви, циклічний зсув

Дано одновимірний масив Х, розміром 15 елементів. Провести циклічний зсув елементів у масиві вправо на 2 позиції.
(зробити у вигляді динамічного масиву)

2

Re: Динамічні масиви, циклічний зсув

#include <stdio.h>
#include <stdlib.h>
#define N 15
#define K 2

int main() {
    
    int i, j;
    int *items;
    int *tmp_items;
    items = (int *) malloc(sizeof(int) * N);
    tmp_items = (int *) malloc(sizeof(int) * K);
    
    
    srand(time(NULL));
    for (i = 0; i < N; i++) {
        items[i] = rand() % 100;
    }
    
    
    printf("Array:\n");
    for (i = 0; i < N; i++) {
        printf("%3d ", items[i]);
    }
    printf("\n");
    
    for (i = 0; i < K; i++) {
        tmp_items[i] = items[(N - 1) - i];
    }
    
    for (i = 0; i < N - K; i++) {
        items[N - i - 1] = items[N - K - i - 1];
    }
    
    for (i = 0; i < K; i++) {
        items[i] = tmp_items[K - i - 1];
    }
    
    
    printf("Result:\n");
    for (i = 0; i < N; i++) {
        printf("%3d ", items[i]);
    }
    printf("\n");
    
    
    free(items);
    free(tmp_items);
    
    return 0;
}