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


#include <stdio.h>
#define NMAX 10

int input(int* a, int* n);
void output(int* a, int n);
int max(int* a, int n);
int min(int* a, int n);
double mean(int* a, int n);
double variance(int* a, int n);

void output_result(int max_v, int min_v, double mean_v, double variance_v);

int main() {
    int n, data[NMAX];

    if (!input(data, &n)) {
        printf("n/a");
        return 0;
    }

    output(data, n);
    printf("\n");
    output_result(max(data, n), min(data, n), mean(data, n), variance(data, n));

    return 0;
}

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

    for (int* p = a; p - a < *n; p++) {
        if (scanf("%d", p) != 1) return 0;
    }

    return 1;
}

void output(int* a, int n) {
    for (int* p = a; p - a < n; p++) {
        if (p != a) printf(" ");
        printf("%d", *p);
    }
}

int max(int* a, int n) {
    int result = a[0];

    for (int* p = a; p - a < n; p++) {
        if (*p > result) result = *p;
    }

    return result;
}

int min(int* a, int n) {
    int result = a[0];

    for (int* p = a; p - a < n; p++) {
        if (*p < result) result = *p;
    }

    return result;
}

double mean(int* a, int n) {
    double sum = 0;

    for (int* p = a; p - a < n; p++) {
        sum += *p;
    }

    return sum / n;
}

double variance(int* a, int n) {
    double m = mean(a, n);
    double sum = 0;

    for (int* p = a; p - a < n; p++) {
        double diff = *p - m;
        sum += diff * diff;
    }

    return sum / n;
}

void output_result(int max_v, int min_v, double mean_v, double variance_v) {
    printf("%d %d %.6f %.6f", max_v, min_v, mean_v, variance_v);
}