This commit is contained in:
Weber 2024-10-14 12:58:04 +00:00
parent fa206f68ea
commit 22e9692d3a

View File

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