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


#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 || *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) printf(" ");
        printf("%d", a[i]);
    }
}

int max(int *a, int n) {
    int m = a[0];
    for (int i = 1; i < n; i++) if (a[i] > m) m = a[i];
    return m;
}

int min(int *a, int n) {
    int m = a[0];
    for (int i = 1; i < n; i++) if (a[i] < m) m = a[i];
    return m;
}

double mean(int *a, int n) {
    double s = 0;
    for (int i = 0; i < n; i++) s += a[i];
    return s / n;
}

double variance(int *a, int n) {
    double m = mean(a, n), s = 0;
    for (int i = 0; i < n; i++) {
        double d = a[i] - m;
        s += d * d;
    }
    return s / 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);
}