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


#include "data_stat.h"

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

    for (int i = 1; i < n; i++) {
        if (data[i] > result) {
            result = data[i];
        }
    }

    return result;
}

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

    for (int i = 1; i < n; i++) {
        if (data[i] < result) {
            result = data[i];
        }
    }

    return result;
}

double mean(double *data, int n) {
    double sum = 0.0;

    for (int i = 0; i < n; i++) {
        sum += data[i];
    }

    return sum / n;
}

double variance(double *data, int n) {
    double avg = mean(data, n);
    double result = 0.0;

    for (int i = 0; i < n; i++) {
        double diff = data[i] - avg;
        result += diff * diff;
    }

    return result / n;
}


#include "data_io.h"

#include <stdio.h>

void input(double *data, int n) {
    for (int i = 0; i < n; i++) {
        scanf("%lf", data + i);
    }
}

void output(double *data, int n) {
    for (int i = 0; i < n; i++) {
        if (i > 0) {
            printf(" ");
        }
        printf("%.2lf", data[i]);
    }
}


#include "data_process.h"

#include <math.h>

#include "../data_libs/data_stat.h"

int normalization(double *data, int n) {
    int result = 1;
    double max_value = max(data, n);
    double min_value = min(data, n);
    double size = max_value - min_value;

    if (fabs(size) > EPS) {
        for (int i = 0; i < n; i++) {
            data[i] = (data[i] - min_value) / size;
        }
    } else {
        result = 0;
    }

    return result;
}


#include <stdio.h>
#include <stdlib.h>

#include "../data_libs/data_io.h"
#include "data_process.h"

int main(void) {
    double *data = NULL;
    int n;

    if (scanf("%d", &n) != 1 || n <= 0) {
        printf("ERROR");
        return 1;
    }

    data = malloc(n * sizeof(double));

    if (data == NULL) {
        printf("ERROR");
        return 1;
    }

    input(data, n);

    if (normalization(data, n)) {
        output(data, n);
    } else {
        printf("ERROR");
    }

    free(data);

    return 0;
}