This commit is contained in:
Anton Dolozin 2025-10-07 20:58:05 +02:00
parent 068e7970a2
commit 3b36ad311e

View File

@ -62,10 +62,10 @@ void process_operations(struct stack* stack) {
strcmp(line, "*") == 0 || strcmp(line, "/") == 0)) {
// ked' mame dostatny pocet operandov, tak zobrame ostatne dva cisla z zasobniku
if (stack->size >= 2) {
float b = pop_stack(stack);
float a = pop_stack(stack);
float last = pop_stack(stack);
float second_last = pop_stack(stack);
/// prerusime prgram a vypiseme chybu ked' mame podel' na 0
if (line[0] == '/' && b == 0.0F)
if (line[0] == '/' && last == 0.0F)
{
printf("division by zero\n");
return;
@ -74,10 +74,10 @@ void process_operations(struct stack* stack) {
// na zaciatku ide podmienka, potom ? operator, vysledok a : operator, ktory vysvetl;je co robit v inakom pripade
// 0 tu ako keby defaultny pripad; nedojde do neho
float res = (line[0] == '+') ? a + b :
(line[0] == '-') ? a - b :
(line[0] == '*') ? a * b :
(line[0] == '/') ? a / b : 0;
float res = (line[0] == '+') ? second_last + last :
(line[0] == '-') ? second_last - last :
(line[0] == '*') ? second_last * last :
(line[0] == '/') ? second_last / last : 0;
/// ked' operaciu podarilo urobit', pridame cislo do zasobniku a vypiseme zasobnik
push_stack(stack, res);