Загрузка данных


#include <stdio.h>
#define NMAX 10

int input(int *a, int *n);
void output(int *a, int n);
void shift(int *a, int n, int c);

int input(int *a, int *n)
{
    if (scanf("%d", n) != 1 || *n < 1 || *n > NMAX)
        return 0;

    for (int i = 0; i < *n; i++)
        if (scanf("%d", &a[i]) != 1)
            return 0;

    return 1;
}

void output(int *a, int n)
{
    for (int i = 0; i < n; i++) {
        if (i > 0)
            printf(" ");
        printf("%d", a[i]);
    }
    printf("\n");
}

void shift(int *a, int n, int c)
{
    int temp[NMAX];
    c = c % n;

    if (c < 0)
        c += n;

    for (int i = 0; i < n; i++)
        temp[i] = a[(i + c) % n];

    for (int i = 0; i < n; i++)
        a[i] = temp[i];
}

int main(void)
{
    int a[NMAX];
    int n, c;

    if (!input(a, &