diff --git a/15Ex/main.c b/15Ex/main.c index a3e38d1..bda01b6 100644 --- a/15Ex/main.c +++ b/15Ex/main.c @@ -5,6 +5,7 @@ int main(void) { double * numbers; FILE * file = getFile(); + if (file == NULL) return -1; numbers = getList(file); if (numbers == NULL) return 1; diff --git a/22Ex/input.txt b/22Ex/input.txt new file mode 100644 index 0000000..e69de29 diff --git a/22Ex/main.c b/22Ex/main.c new file mode 100644 index 0000000..d467ff4 --- /dev/null +++ b/22Ex/main.c @@ -0,0 +1,30 @@ +#include +#include "tools.h" + +int transposition(double * numbers); + +int transposition(double * numbers) { + unsigned length = (int)numbers[0]; + + + int last_index = -1; + unsigned last_length = 0; + + return 0 +} + +int main(void) { + double * numbers; + FILE * file = getFile(); + if (file == NULL) return -1; + + numbers = getList(file); + if (numbers == NULL) return -1; + + if (transposition(numbers) != 0) return -1; + + for (int i = 1; i < numbers[0]; ++i) printf("%d ", numbers[i]); + + free(numbers); + return 0; +} diff --git a/22Ex/tools.c b/22Ex/tools.c new file mode 100644 index 0000000..f2ebc66 --- /dev/null +++ b/22Ex/tools.c @@ -0,0 +1,50 @@ +#include "tools.h" + +FILE * getFile(void) +{ + FILE * file; + char filename[50]; + + printf("Enter filename: "); + if (scanf("%s", filename) == 1) + { + file = fopen(filename, "r"); + if (file == NULL) { + printf("Error file!\n"); + return NULL; + } else { + return file; + } + } else + { + printf("Empty name!\n"); + return NULL; + } +} + +double * getList(FILE * file) { + double current; + int i, length = 2; + double * numbers = NULL; + + if (fscanf(file, "%lf", ¤t) != 1) { + printf("File is empty!"); + return numbers; + } + + numbers = (double *)malloc(length * sizeof(double)); + i = 1; + + do { + if (i >= length) { + length *= 2; + numbers = (double *)realloc(numbers, (length * sizeof(double))); + } + numbers[i] = current; + i++; + } while (fscanf(file, "%lf", ¤t) == 1); + + numbers = (double *)realloc(numbers, i * sizeof(double)); + numbers[0] = i; + return numbers; +} diff --git a/22Ex/tools.h b/22Ex/tools.h new file mode 100644 index 0000000..706e31a --- /dev/null +++ b/22Ex/tools.h @@ -0,0 +1,10 @@ +#ifndef TOOLS +#define TOOLS + +#include +#include + +FILE * getFile(void); +double * getList(FILE * file); + +#endif