diff --git a/cv3/program.c b/cv3/program.c index ab2f54e..ed683bf 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -109,7 +109,7 @@ int main() { vloz(&kalkulacka, hodnota); zobraz_zasobnik(&kalkulacka); } - else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) {a + else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) { char operacia = vstup[0]; if (!dost_operantov(&kalkulacka)) { @@ -117,27 +117,47 @@ int main() { continue; } - bool uspech = false; switch (operacia) { case '+': - uspech = scitat(&kalkulacka); + if (scitat(&kalkulacka)) { + zobraz_zasobnik(&kalkulacka); + } else { + printf("no input\n"); + return 0; + } break; case '-': - uspech = odcitat(&kalkulacka); + if (odcitat(&kalkulacka)) { + zobraz_zasobnik(&kalkulacka); + } else { + printf("no input\n"); + return 0; + } break; case '*': - uspech = nasobit(&kalkulacka); + if (nasobit(&kalkulacka)) { + zobraz_zasobnik(&kalkulacka); + } else { + printf("no input\n"); + return 0; + } break; - case '/': - uspech = delit(&kalkulacka); + case '/': { + float a, b; + if (vyber(&kalkulacka, &a, &b)) { + if (a == 0) { + printf("division by zero\n"); + return 0; + } else { + vloz(&kalkulacka, b / a); + zobraz_zasobnik(&kalkulacka); + } + } else { + printf("no input\n"); + return 0; + } break; - } - - if (uspech) { - zobraz_zasobnik(&kalkulacka); - } else { - printf("no input\n"); - return 0; + } } } else { printf("bad input\n");