diff --git a/du3/program.c b/du3/program.c index bfff09b..e57f4d0 100644 --- a/du3/program.c +++ b/du3/program.c @@ -47,10 +47,17 @@ void process_operations(struct stack* stack) { if (stack->size >= 2) { float b = pop_stack(stack); float a = pop_stack(stack); + if (line[0] == '/' && b == 0.0F) + { + printf("division by zero\n"); + return; + } + float res = (line[0] == '+') ? a + b : (line[0] == '-') ? a - b : (line[0] == '*') ? a * b : (line[0] == '/') ? a / b : 0; + push_stack(stack, res); print_stack(stack); } else {