This commit is contained in:
Weber 2024-10-14 12:56:45 +00:00
parent 001a0c32c5
commit fa206f68ea

View File

@ -1,6 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#define MAX_VELKOST 10
@ -72,6 +73,12 @@ void zobraz_zasobnik(KalkulackaZasobnik *kalkulacka) {
printf("\n");
}
bool je_platny_vstup(const char *vstup) {
char *endptr;
strtof(vstup, &endptr);
return endptr != vstup && *endptr == '\n';
}
int main() {
KalkulackaZasobnik kalkulacka;
inicializuj(&kalkulacka);
@ -87,7 +94,8 @@ int main() {
float hodnota;
char operacia;
if (sscanf(vstup, "%f", &hodnota) == 1) {
if (je_platny_vstup(vstup)) {
sscanf(vstup, "%f", &hodnota);
if (vloz(&kalkulacka, hodnota)) {
zobraz_zasobnik(&kalkulacka);
}
@ -98,7 +106,6 @@ int main() {
zobraz_zasobnik(&kalkulacka);
} else {
printf("no input\n");
return 0;
}
break;
case '-':
@ -106,7 +113,6 @@ int main() {
zobraz_zasobnik(&kalkulacka);
} else {
printf("no input\n");
return 0;
}
break;
case '*':
@ -114,7 +120,6 @@ int main() {
zobraz_zasobnik(&kalkulacka);
} else {
printf("no input\n");
return 0;
}
break;
case '/': {
@ -122,26 +127,21 @@ int main() {
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;
}
} else {
printf("no input\n");
return 0;
}
break;
}
default:
printf("bad input\n");
return 0;
break;
}
} else {
printf("bad input\n");
return 0;
}
}