From 3e96d3a32cac6ec7efa527608b2d3469e5d42de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jana=20Kapalkov=C3=A1?= Date: Thu, 5 Mar 2026 18:13:23 +0100 Subject: [PATCH] commit --- du1/program.c | 62 ++++++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/du1/program.c b/du1/program.c index e7262a3..5a768e5 100644 --- a/du1/program.c +++ b/du1/program.c @@ -2,45 +2,51 @@ #include #include #include +#include #define LINE_SIZE 1024 int main() { char line[LINE_SIZE]; char* endptr = NULL; - char* start = NULL; - - memset(line, 0, LINE_SIZE); - char* r1 = fgets(line, LINE_SIZE, stdin); - assert(r1 != NULL); - - double x = strtod(line, NULL); - - memset(line, 0, LINE_SIZE); - char* r2 = fgets(line, LINE_SIZE, stdin); - assert(r2 != NULL); - - int len = strlen(line); - start = line; - - double result = 0.0; + char* r = NULL; + double x = 0, val = 0, result = 0; int first = 1; + int count = 0; - while (start < (line + len)) { - double val = strtod(start, &endptr); + memset(line, 0, LINE_SIZE); + r = fgets(line, LINE_SIZE, stdin); - if (start != endptr) { - if (first) { - result = val; - first = 0; - } else { - result = result * x + val; - } - start = endptr; - } else { + if (r == NULL) { + printf("Nepodarilo sa nacitat hodnotu x.\n"); + return 1; + } + assert(r != NULL); + x = strtod(line, &endptr); + if (line == endptr) { + printf("Nepodarilo sa nacitat hodnotu x.\n"); + return 1; + } + while (fgets(line, LINE_SIZE, stdin) != NULL) { + if (strlen(line) <= 1 && (line[0] == '\n' || line[0] == '\r')) { break; } + char *ptr = line; + while (isspace((unsigned char)*ptr)) ptr++; + if (*ptr == '\0') break; + val = strtod(line, &endptr); + if (line == endptr) { + printf("Nepodarilo sa nacitat koeficient %d.\n", count); + return 1; + } + if (first) { + result = val; + first = 0; + } else { + result = result * x + val; + } + count++; } - + printf("Vysledok je: %.2f\n", result); return 0; } \ No newline at end of file