From 5715573e8f7c67cb39c67eb4323b6ed07e0d1bfe Mon Sep 17 00:00:00 2001 From: Weber Date: Mon, 14 Oct 2024 13:57:21 +0000 Subject: [PATCH] test --- cv3/program.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cv3/program.c b/cv3/program.c index 43a66de..30baefa 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -87,6 +87,11 @@ bool je_platne_cislo(const char *vstup) { return *koniec == '\n' || *koniec == '\0'; } +// Funkcia na kontrolu, či je v zásobníku dostatok operantov pre operáciu +bool dost_operantov(KalkulackaZasobnik *kalkulacka) { + return kalkulacka->vrchol >= 1; // Potrebujeme aspoň 2 operanty na operáciu +} + int main() { KalkulackaZasobnik kalkulacka; inicializuj(&kalkulacka); @@ -100,13 +105,18 @@ int main() { } if (je_platne_cislo(vstup)) { - float hodnota = strtof(vstup, NULL); // Prevedieme platné číslo + float hodnota = strtof(vstup, NULL); vloz(&kalkulacka, hodnota); zobraz_zasobnik(&kalkulacka); } - else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) { // Kontrolujeme, či vstup je operácia + else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) { char operacia = vstup[0]; + if (!dost_operantov(&kalkulacka)) { + printf("not enough operands\n"); + continue; + } + switch (operacia) { case '+': if (scitat(&kalkulacka)) {