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



#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) == 0)
    {
        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 *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;

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

    return result;
}

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

    for (int *p = a + 1; 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 average = mean(a, n);
    double sum = 0;

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

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