nano src/main_executable_module/main_executable_module.c
#include "../data_libs/data_io.h"
#include "../data_libs/data_stat.h"
#include "../data_libs/data_process.h"
#include "../data_libs/decision.h"
int main() {
int n;
double *data;
int decision = 0;
printf("Enter number of elements: ");
scanf("%d", &n);
data = (double*)malloc(n * sizeof(double));
if (data == NULL) {
printf("n/a\n");
return 1;
}
input(data, n);
if (normalization(data, n)) {
printf("Normalized data: ");
output(data, n);
decision = make_decision(data, n);
if (decision == 1) {
printf("Decision: YES\n");
} else {
printf("Decision: NO\n");
}
} else {
printf("Normalization failed\n");
}
free(data);
return 0;
}
nano src/main_executable_module/Makefile
CC = gcc
CFLAGS = -Wall -Werror -Wextra -std=c11
SRC_DIR = .
BUILD_DIR = ../../build
DATA_LIBS_DIR = ../data_libs
SOURCES = $(SRC_DIR)/main_executable_module.c \
$(DATA_LIBS_DIR)/data_io.c \
$(DATA_LIBS_DIR)/data_stat.c \
$(DATA_LIBS_DIR)/data_process.c \
$(DATA_LIBS_DIR)/decision.c
OBJECTS = $(BUILD_DIR)/main_executable_module.o \
$(BUILD_DIR)/data_io.o \
$(BUILD_DIR)/data_stat.o \
$(BUILD_DIR)/data_process.o \
$(BUILD_DIR)/decision.o
TARGET = $(BUILD_DIR)/Quest_3
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ -lm
$(BUILD_DIR)/%.o: $(DATA_LIBS_DIR)/%.c
mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/main_executable_module.o: $(SRC_DIR)/main_executable_module.c
mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(BUILD_DIR)/*.o $(TARGET)
rebuild: clean all
.PHONY: all clean rebuild
cd src/main_executable_module
make all
cd ../..
./build/Quest_3
# ВВОДИМ:
4
1 2 3 4
# ДОЛЖНЫ УВИДЕТЬ:
# Normalized data: 0.00 0.33 0.67 1.00
# Decision: YES
cd src/main_executable_module
# Проверяем clean
make clean
ls ../../build/ # Должны увидеть, что .o файлы удалены
# Проверяем rebuild
make rebuild
cd ../..
./build/Quest_3 # Должен работать