This commit is contained in:
Weber 2024-10-14 13:27:53 +00:00
parent c614a32f8c
commit 21e67c07dc

View File

@ -95,53 +95,58 @@ int main() {
if (vloz(&kalkulacka, hodnota)) { if (vloz(&kalkulacka, hodnota)) {
zobraz_zasobnik(&kalkulacka); zobraz_zasobnik(&kalkulacka);
} }
if (sscanf(vstup + snprintf(NULL, 0, "%.2f", hodnota), " %c", &operacia) == 1) { } else if (sscanf(vstup, "%c", &operacia) == 1) {
if (!je_platna_operacia(operacia)) { if (!je_platna_operacia(operacia)) {
if (kalkulacka.vrchol >= 0) {
printf("%.2f\nbad input\n", kalkulacka.zasobnik[kalkulacka.vrchol]);
} else {
printf("bad input\n"); printf("bad input\n");
return 0;
} }
switch (operacia) { return 0;
case '+': }
if (scitat(&kalkulacka)) { switch (operacia) {
zobraz_zasobnik(&kalkulacka); case '+':
} else { if (scitat(&kalkulacka)) {
printf("no input\n"); zobraz_zasobnik(&kalkulacka);
return 0; } else {
} printf("no input\n");
break; return 0;
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;
} }
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 { } else {
printf("bad input\n"); printf("no input\n");
return 0; return 0;
} }
} }