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


#include <stdio.h>

#define NMAX 10

int check_tail(void);
int input(int *a, int n);
void sort(int *a, int n);
void output(int *a, int n);

int main(void) {
    int data[NMAX];

    if (input(data, NMAX)) {
        sort(data, NMAX);
        output(data, NMAX);
    } else {
        printf("n/a");
    }

    return 0;
}

int check_tail(void) {
    int ch;
    int result = 1;

    while ((ch = getchar()) != '\n' && ch != EOF) {
        if (ch != ' ' && ch != '\t') {
            result = 0;
        }
    }

    return result;
}

int input(int *a, int n) {
    int result = 1;
    int i = 0;

    while (result && i < n) {
        if (scanf("%d", a + i) != 1) {
            result = 0;
        }

        i++;
    }

    if (result && !check_tail()) {
        result = 0;
    }

    return result;
}

void sort(int *a, int n) {
    int i = 0;
    int j;
    int temp;

    while (i < n - 1) {
        j = 0;

        while (j < n - i - 1) {
            if (*(a + j) > *(a + j + 1)) {
                temp = *(a + j);
                *(a + j) = *(a + j + 1);
                *(a + j + 1) = temp;
            }

            j++;
        }

        i++;
    }
}

void output(int *a, int n) {
    int i = 0;

    while (i < n) {
        if (i > 0) {
            printf(" ");
        }

        printf("%d", *(a + i));
        i++;
    }
}