This commit is contained in:
Weber 2024-10-14 13:57:21 +00:00
parent 884ed60648
commit 5715573e8f

View File

@ -87,6 +87,11 @@ bool je_platne_cislo(const char *vstup) {
return *koniec == '\n' || *koniec == '\0'; 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() { int main() {
KalkulackaZasobnik kalkulacka; KalkulackaZasobnik kalkulacka;
inicializuj(&kalkulacka); inicializuj(&kalkulacka);
@ -100,13 +105,18 @@ int main() {
} }
if (je_platne_cislo(vstup)) { if (je_platne_cislo(vstup)) {
float hodnota = strtof(vstup, NULL); // Prevedieme platné číslo float hodnota = strtof(vstup, NULL);
vloz(&kalkulacka, hodnota); vloz(&kalkulacka, hodnota);
zobraz_zasobnik(&kalkulacka); 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]; char operacia = vstup[0];
if (!dost_operantov(&kalkulacka)) {
printf("not enough operands\n");
continue;
}
switch (operacia) { switch (operacia) {
case '+': case '+':
if (scitat(&kalkulacka)) { if (scitat(&kalkulacka)) {