diff options
Diffstat (limited to '03.c')
-rw-r--r-- | 03.c | 33 |
1 files changed, 14 insertions, 19 deletions
@@ -1,20 +1,20 @@ #include <stdlib.h> #include <stdio.h> #include <err.h> -#include <string.h> #include "input.h" #define INPUT "input/03.txt" #define INPUT_SIZE 12 -void part1(char** input, size_t lineCount) { +void part1(struct input_str* input) { int oneCount[INPUT_SIZE]; + // TODO is that necessary ? for(int k = 0; k < INPUT_SIZE; k++) { oneCount[k] = 0; } - for(size_t i = 0; i < lineCount; i++) { - char* line = input[i]; + for(size_t i = 0; i < input->line_count; i++) { + char* line = input->lines[i]; for(int j = 0; j < INPUT_SIZE; j++) { if(line[j] == '1') oneCount[j]++; @@ -24,7 +24,7 @@ void part1(char** input, size_t lineCount) { // null terminated string char binary[INPUT_SIZE + 1]; for(int h = 0; h < INPUT_SIZE; h++) { - binary[h] = oneCount[h] > lineCount / 2.0f ? '1' : '0'; + binary[h] = oneCount[h] > input->line_count / 2.0f ? '1' : '0'; } binary[INPUT_SIZE] = '\0'; char* endp = NULL; @@ -37,19 +37,14 @@ void part1(char** input, size_t lineCount) { } int main() { - // lecture du fichier d'entree - FILE* file=fopen(INPUT,"r"); - if(file == NULL) - err(1, "Le fichier %s n'existe pas\n", INPUT); - - size_t lineCount = count_lines(file); - char** input = malloc(lineCount * sizeof(char*)); - read_lines_as_string(file, input, lineCount); - // fermeture du fichier - fclose(file); - - part1(input, lineCount); - - free_strings(input, lineCount); + // read input data + struct input_str input; + input_str_read(&input, INPUT); + + // do stuff + part1(&input); + + // cleanup & exit + input_str_free(&input); return 0; } |