From 45727a1bc998eed7fc9c71ce0a86fc7df78c71e6 Mon Sep 17 00:00:00 2001 From: Weber Date: Mon, 14 Oct 2024 13:52:30 +0000 Subject: [PATCH] test --- cv3/program.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/cv3/program.c b/cv3/program.c index e005374..b7e5531 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -1,6 +1,7 @@ #include #include #include +#include #define MAX_VELKOST 10 @@ -58,7 +59,7 @@ bool delit(KalkulackaZasobnik *kalkulacka) { float a, b; if (vyber(kalkulacka, &a, &b)) { if (a == 0) { - return false; + return false; } return vloz(kalkulacka, b / a); } @@ -85,20 +86,28 @@ int main() { fgets(vstup, sizeof(vstup), stdin); if (vstup[0] == '\n') { - break; + break; } float hodnota; char operacia; + char *zvysok; + + if ((sscanf(vstup, "%f", &hodnota) == 1) && (strtok(vstup, " \n") != NULL)) { + // Kontrolujeme, či za číslom nie je ďalší neplatný vstup + if (strtok(NULL, " \n") == NULL) { + vloz(&kalkulacka, hodnota); + zobraz_zasobnik(&kalkulacka); + } else { + printf("bad input\n"); + return 0; + } + } - if (sscanf(vstup, "%f", &hodnota) == 1) { - vloz(&kalkulacka, hodnota); - printf("%.2f\n", hodnota); - } else if (sscanf(vstup, "%c", &operacia) == 1) { if (!je_platna_operacia(operacia)) { printf("bad input\n"); - continue; + return 0; } switch (operacia) { case '+': @@ -143,7 +152,7 @@ int main() { } } else { printf("bad input\n"); - continue; // Zabezpečíme, aby sa cyklus opakoval + return 0; } }