Update cv3/program.c

This commit is contained in:
Yurii Yakovenko 2024-10-14 19:46:13 +00:00
parent 53fedccf2e
commit c5605e5b2c

View File

@ -1,7 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include <assert.h> #include <assert.h>
#include <stdlib.h> #include <stdlib.h>
////@@@@
#define STACK_SIZE 500 #define STACK_SIZE 500
struct Stack struct Stack
@ -17,13 +17,13 @@ int count_stack(struct Stack* stack);
void push_stack(struct Stack* stack, float value) void push_stack(struct Stack* stack, float value)
{ {
assert(stack->size < STACK_SIZE); assert(stack->size < STACK_SIZE); // Program spadne, ak zapisuje mimo
stack->values[stack->size] = value; stack->values[stack->size] = value;
stack->size += 1; stack->size += 1;
} }
float pop_stack(struct Stack* stack) float pop_stack(struct Stack* stack)
{ {
assert(stack->size > 0); assert(stack->size > 0); // Program spadne, ak číta mimo
float value = stack->values[stack->size-1]; float value = stack->values[stack->size-1];
stack->size -= 1; stack->size -= 1;
return value; return value;
@ -37,8 +37,9 @@ void print_stack(struct Stack* stack)
{ {
for (int i=0; i<stack->size; i++) for (int i=0; i<stack->size; i++)
{ {
printf("%f/", stack->values[i]); printf("%.2f ", stack->values[i]);
} }
printf("\n");
} }
@ -54,9 +55,10 @@ int main()
do do
{ {
char* p=fgets(buf, 299, stdin); char* p=fgets(buf, 299, stdin);
//printf("{%s}",buf);
if(!p) if(!p)
{ {
//printf("==");
break; break;
} }
else else
@ -73,13 +75,15 @@ int main()
case '-': rez=op1-op2; break; case '-': rez=op1-op2; break;
case '/': rez=op1/op2; break; case '/': rez=op1/op2; break;
case '*': rez=op1*op2; break; case '*': rez=op1*op2; break;
} } //p
push_stack(&mystack, rez);
printf(" %.2f\n", rez);
} }
else else
push_stack(&mystack, atof(buf)); {
rez=atof(buf);
}
push_stack(&mystack, rez);
//printf(" %.2f\n", rez);
print_stack(&mystack);
} }
}while(1); }while(1);