From c3182c8c248127ef56bb7a6615aa3d3bce4fa4e5 Mon Sep 17 00:00:00 2001 From: AZEN-SGG Date: Mon, 7 Oct 2024 16:33:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=2022=20=D0=97?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 15Ex/main.c | 1 + 22Ex/input.txt | 0 22Ex/main.c | 30 ++++++++++++++++++++++++++++++ 22Ex/tools.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 22Ex/tools.h | 10 ++++++++++ 5 files changed, 91 insertions(+) create mode 100644 22Ex/input.txt create mode 100644 22Ex/main.c create mode 100644 22Ex/tools.c create mode 100644 22Ex/tools.h 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