diff --git a/cv3/program.c b/cv3/program.c index 6e60330..963be93 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -95,53 +95,58 @@ int main() { if (vloz(&kalkulacka, hodnota)) { zobraz_zasobnik(&kalkulacka); } - if (sscanf(vstup + snprintf(NULL, 0, "%.2f", hodnota), " %c", &operacia) == 1) { - if (!je_platna_operacia(operacia)) { + } else if (sscanf(vstup, "%c", &operacia) == 1) { + if (!je_platna_operacia(operacia)) { + if (kalkulacka.vrchol >= 0) { + printf("%.2f\nbad input\n", kalkulacka.zasobnik[kalkulacka.vrchol]); + } else { printf("bad input\n"); - return 0; } - switch (operacia) { - case '+': - if (scitat(&kalkulacka)) { - zobraz_zasobnik(&kalkulacka); - } else { - printf("no input\n"); - return 0; - } - break; - case '-': - if (odcitat(&kalkulacka)) { - zobraz_zasobnik(&kalkulacka); - } else { - printf("no input\n"); - return 0; - } - break; - case '*': - if (nasobit(&kalkulacka)) { - zobraz_zasobnik(&kalkulacka); - } else { - printf("no input\n"); - return 0; - } - break; - 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); - } - } - break; + return 0; + } + switch (operacia) { + case '+': + if (scitat(&kalkulacka)) { + zobraz_zasobnik(&kalkulacka); + } else { + printf("no input\n"); + return 0; } + break; + case '-': + if (odcitat(&kalkulacka)) { + zobraz_zasobnik(&kalkulacka); + } else { + printf("no input\n"); + return 0; + } + break; + case '*': + if (nasobit(&kalkulacka)) { + zobraz_zasobnik(&kalkulacka); + } else { + printf("no input\n"); + return 0; + } + break; + 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); + printf("no input\n"); + return 0; + } + } + break; } } } else { - printf("bad input\n"); + printf("no input\n"); return 0; } }