diff --git a/cv3/program.c b/cv3/program.c index 9d6705a..4e8f45e 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -33,7 +33,7 @@ float calculator(float n1, float n2, char operation) { return n1 / n2; } else { printf("division by zero\n"); - return n1; // Возвращаем первое число, чтобы стек не был нарушен + return n1; } } return 0; @@ -43,7 +43,7 @@ void push(float number) { if (stack_top < STACK_SIZE - 1) { stack[++stack_top] = number; } else { - printf("Error: stack overflow\n"); + printf("stack overflow\n"); } } @@ -51,19 +51,21 @@ float pop() { if (stack_top >= 0) { return stack[stack_top--]; } else { - printf("Error: stack is empty\n"); + printf("stack is empty\n"); return 0; } } void print_stack() { - for (int i = 0; i <= stack_top; i++) { - printf("%.2f", stack[i]); - if (i < stack_top) { - printf(" "); + if (stack_top >= 0) { + for (int i = 0; i <= stack_top; i++) { + printf("%.2f", stack[i]); + if (i < stack_top) { + printf(" "); + } } + printf("\n"); } - printf(" \n"); } int main() { @@ -93,15 +95,12 @@ int main() { float result = calculator(n1, n2, operation); if (!(operation == '/' && n2 == 0)) { push(result); + print_stack(); } - print_stack(); } } - // Проверяем, нужно ли выводить "no input" - if (stack_top == -1) { - printf("no input\n"); - } + printf("no input\n"); return 0; }