From 13a212c122c614d74f5c32bfc7a3cd672f44012c Mon Sep 17 00:00:00 2001 From: Bohdana Marchenko Date: Thu, 6 Mar 2025 11:05:30 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20du2/program.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- du2/program.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/du2/program.c b/du2/program.c index 54614db..10e55a5 100644 --- a/du2/program.c +++ b/du2/program.c @@ -5,13 +5,16 @@ #define LINE_SIZE 100 +// Funkcia na bezpečné načítanie čísla int read_double(double *value, int coef_index) { char line[LINE_SIZE]; if (fgets(line, LINE_SIZE, stdin) == NULL) { - return 0; + return 0; // Chyba pri čítaní } + // Odstránenie nového riadka line[strcspn(line, "\r\n")] = 0; + // Skontrolujeme, či je riadok prázdny if (strlen(line) == 0) { return 0; } @@ -19,9 +22,10 @@ int read_double(double *value, int coef_index) { char *endptr; *value = strtod(line, &endptr); + // Ak nebolo načítané číslo alebo sú tam neplatné znaky if (endptr == line || *endptr != '\0') { - printf("Nepodarilo sa nacitat polynom na %d mieste.\n", coef_index); - return -1; + printf("Nepodarilo sa nacitat polynom na %d mieste.\n", coef_index); // Zobrazenie správneho indexu + return -1; // Signalizujeme chybu } return 1; } @@ -34,15 +38,15 @@ int main() { double coef; double result = 0; - int coef_count = 2; + int coef_count = 1; // Koeficienty začíname indexovať od 1 (pre x^1) while (1) { - int status = read_double(&coef, coef_count); + int status = read_double(&coef, coef_count + 1); // Tu používame coef_count + 1 pre správny index if (status == -1) { - return 0; + return 0; // Očakávané ukončenie pri neplatnom vstupe } if (status == 0) { - if (coef_count == 2) { + if (coef_count == 1) { // Ak nebol zadaný žiadny koeficient return 1; } break;