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


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

#include "../data_libs/data_io.h"
#include "../data_module/data_process.h"
#include "../yet_another_decision_module/decision.h"

void sort(double *data, int n);
void swap(double *a, double *b);

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

    printf("LOAD DATA...\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);

    printf("RAW DATA:\n\t");
    output(data, n);

    printf("\nNORMALIZED DATA:\n\t");

    if (normalization(data, n)) {
        output(data, n);

        printf("\nSORTED NORMALIZED DATA:\n\t");
        sort(data, n);
        output(data, n);

        printf("\nFINAL DECISION:\n\t");

        if (make_decision(data, n)) {
            printf("YES");
        } else {
            printf("NO");
        }
    } else {
        printf("ERROR");
    }

    free(data);

    return 0;
}

void sort(double *data, int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (data[j] > data[j + 1]) {
                swap(data + j, data + j + 1);
            }
        }
    }
}

void swap(double *a, double *b) {
    double temp = *a;
    *a = *b;
    *b = temp;
}


CC = gcc
CFLAGS = -Wall -Wextra -Werror -std=c11
BUILD_DIR = ../../build
TARGET = $(BUILD_DIR)/Quest_3

SOURCES = main_executable_module.c \
../data_libs/data_io.c \
../data_libs/data_stat.c \
../data_module/data_process.c \
../yet_another_decision_module/decision.c

all: $(TARGET)

$(TARGET): $(SOURCES)
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) $(SOURCES) -o $(TARGET) -lm

clean:
	rm -rf $(BUILD_DIR)

rebuild: clean all