#include #include #include #define STACK_SIZE 10 struct stack{ float *values; int size; int capacity; }; struct stack* create_stack (int capacity) { struct stack* s = malloc (sizeof(struct stack)); if (s==NULL) { printf("Error!\n"); exit(1); } s->values = malloc(capacity * sizeof(float)); if (s->values==NULL) { printf("Error!\n"); free(s); exit(1); } s->size = 0; s->capacity = capacity; return s; } void push_stack (struct stack* s, float value) { if (s->size >= s->capacity) { printf("Stack perepolnen!\n"); exit(1); } s->values[s->size] = value; s->size++; } float pop_stack(struct stack* s) { if (s->size <= 0) { printf("Erroe!\n"); exit(1); } s->size--; return s->values[s->size]; } void print_stack(struct stack* stack) { for (int i = 0; isize; i++) { printf("%.2f", stack->values[i]); } printf("\n"); } void destroy_stack (struct stack* s) { free(s->values); free(s); } int main() { return 0; }