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


#include <stdio.h>
#include <math.h>
#define NMAX 30

int input(int *a, int *n);
double mean(int *a, int n);
double variance(int *a, int n);
int search(int *a, int n);

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

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

    printf("%d", search(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;
}

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;
}

int search(int *a, int n) {
    double m = mean(a, n);
    double limit = m + 3.0 * sqrt(variance(a, n));

    for (int i = 0; i < n; i++) {
        if (a[i] != 0 && a[i] % 2 == 0 && a[i] >= m && a[i] <= limit)
            return a[i];
    }
    return 0;
}