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