This commit is contained in:
Deinerovych 2024-10-16 10:30:32 +02:00
parent 016c07efb5
commit 786e86b804

View File

@ -56,11 +56,20 @@ float pop() {
} }
} }
void print_stack() {
for (int i = 0; i <= stack_top; i++) {
if (i > 0) {
printf(" ");
}
printf("%.2f", stack[i]);
}
printf("\n");
}
int main() { int main() {
char arr[50]; char arr[50];
char *pend; char *pend;
stack_top = -1; stack_top = -1;
bool first_output = true;
while (fgets(arr, 50, stdin)) { while (fgets(arr, 50, stdin)) {
if (arr[0] == '\n' || arr[0] == EOF) { if (arr[0] == '\n' || arr[0] == EOF) {
@ -70,17 +79,10 @@ int main() {
if (is_number(arr)) { if (is_number(arr)) {
float number = strtof(arr, &pend); float number = strtof(arr, &pend);
push(number); push(number);
if (!first_output) { print_stack(); // Печать стека после ввода числа
printf(" ");
}
printf("%.2f", number);
first_output = false;
} }
else if (is_operation(arr)) { else if (is_operation(arr)) {
if (stack_top < 1) { if (stack_top < 1) {
if (!first_output) {
printf("\n");
}
printf("no input\n"); printf("no input\n");
return 0; return 0;
} }
@ -90,21 +92,14 @@ int main() {
char operation = arr[0]; char operation = arr[0];
float result = calculator(n1, n2, operation); float result = calculator(n1, n2, operation);
push(result); push(result);
if (!first_output) { print_stack(); // Печать стека после выполнения операции
printf(" ");
}
printf("%.2f", result);
first_output = false;
} }
} }
if (stack_top == 0) { if (stack_top == 0) {
if (!first_output) { print_stack(); // Печать оставшегося элемента
printf(" ");
}
printf("\n%.2f\n", pop());
} else { } else {
printf("\nno input\n"); printf("no input\n");
} }
return 0; return 0;