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