test
This commit is contained in:
parent
45727a1bc9
commit
884ed60648
@ -1,6 +1,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <ctype.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define MAX_VELKOST 10
|
#define MAX_VELKOST 10
|
||||||
@ -77,6 +78,15 @@ bool je_platna_operacia(char operacia) {
|
|||||||
return operacia == '+' || operacia == '-' || operacia == '*' || operacia == '/';
|
return operacia == '+' || operacia == '-' || operacia == '*' || operacia == '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Funkcia na validáciu, či je vstup platným číslom
|
||||||
|
bool je_platne_cislo(const char *vstup) {
|
||||||
|
char *koniec;
|
||||||
|
strtof(vstup, &koniec); // Prevedie reťazec na číslo
|
||||||
|
|
||||||
|
// Ak ukazovateľ koniec nesmeruje na '\0', vstup obsahuje neplatné znaky
|
||||||
|
return *koniec == '\n' || *koniec == '\0';
|
||||||
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
KalkulackaZasobnik kalkulacka;
|
KalkulackaZasobnik kalkulacka;
|
||||||
inicializuj(&kalkulacka);
|
inicializuj(&kalkulacka);
|
||||||
@ -89,26 +99,14 @@ int main() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
float hodnota;
|
if (je_platne_cislo(vstup)) {
|
||||||
char operacia;
|
float hodnota = strtof(vstup, NULL); // Prevedieme platné číslo
|
||||||
char *zvysok;
|
vloz(&kalkulacka, hodnota);
|
||||||
|
zobraz_zasobnik(&kalkulacka);
|
||||||
if ((sscanf(vstup, "%f", &hodnota) == 1) && (strtok(vstup, " \n") != NULL)) {
|
|
||||||
// Kontrolujeme, či za číslom nie je ďalší neplatný vstup
|
|
||||||
if (strtok(NULL, " \n") == NULL) {
|
|
||||||
vloz(&kalkulacka, hodnota);
|
|
||||||
zobraz_zasobnik(&kalkulacka);
|
|
||||||
} else {
|
|
||||||
printf("bad input\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) { // Kontrolujeme, či vstup je operácia
|
||||||
|
char operacia = vstup[0];
|
||||||
|
|
||||||
else if (sscanf(vstup, "%c", &operacia) == 1) {
|
|
||||||
if (!je_platna_operacia(operacia)) {
|
|
||||||
printf("bad input\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
switch (operacia) {
|
switch (operacia) {
|
||||||
case '+':
|
case '+':
|
||||||
if (scitat(&kalkulacka)) {
|
if (scitat(&kalkulacka)) {
|
||||||
@ -143,9 +141,10 @@ int main() {
|
|||||||
} else {
|
} else {
|
||||||
vloz(&kalkulacka, b / a);
|
vloz(&kalkulacka, b / a);
|
||||||
zobraz_zasobnik(&kalkulacka);
|
zobraz_zasobnik(&kalkulacka);
|
||||||
printf("no input\n");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
printf("no input\n");
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user