smaugmol@us-r3:~/D09T06_ID_1577487-1/src$ cat data_libs/data_io.c data_libs/data_stat.c data_module/data_process.c yet_another_decision_module/decision.c
#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++)
{
printf("%.2lf", data[i]);
if (i < n - 1)
printf(" ");
}
}
#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;
for (int i = 0; i < n; i++)
sum += data[i];
return sum / n;
}
double variance(double *data, int n)
{
double average = mean(data, n);
double sum = 0;
for (int i = 0; i < n; i++)
sum += (data[i] - average) * (data[i] - average);
return sum / n;
}
#include "data_process.h"
#include "../data_libs/data_stat.h"
#include <math.h>
int normalization(double *data, int n)
{
double max_value = max(data, n);
double min_value = min(data, n);
double size = max_value - min_value;
if (fabs(size) < EPS)
return 0;
for (int i = 0; i < n; i++)
{
data[i] = (data[i] - min_value) / size;
}
return 1;
}
#include <math.h>
#include "../data_libs/data_stat.h"
#include "decision.h"
int make_decision(double *data, int n)
{
double m = mean(data, n);
double sigma = sqrt(variance(data, n));
double max_value = max(data, n);
double min_value = min(data, n);
return (max_value <= m + 3 * sigma) &&
(min_value >= m - 3 * sigma) &&
(m >= GOLDEN_RATIO);
}