Update cv3/program.c

This commit is contained in:
Viktor Daniv 2024-10-07 12:16:34 +00:00
parent 53462b2416
commit 09bbcf740a

View File

@ -4,18 +4,17 @@
#define STACK_SIZE 10 #define STACK_SIZE 10
// Структура для калькулятора зі стеком
typedef struct { typedef struct {
double stack[STACK_SIZE]; double stack[STACK_SIZE];
int top; int top;
} Calculator; } Calculator;
// Ініціалізація калькулятора
void init(Calculator *calc) { void init(Calculator *calc) {
calc->top = -1; calc->top = -1;
} }
// Додавання числа до стека
int push(Calculator *calc, double value) { int push(Calculator *calc, double value) {
if (calc->top >= STACK_SIZE - 1) { if (calc->top >= STACK_SIZE - 1) {
printf("Chyba: zasobnik je plny\n"); printf("Chyba: zasobnik je plny\n");
@ -25,7 +24,7 @@ int push(Calculator *calc, double value) {
return 1; return 1;
} }
// Вилучення числа зі стека
int pop(Calculator *calc, double *value) { int pop(Calculator *calc, double *value) {
if (calc->top < 0) { if (calc->top < 0) {
printf("Chyba: zasobnik je prazdny\n"); printf("Chyba: zasobnik je prazdny\n");
@ -35,10 +34,10 @@ int pop(Calculator *calc, double *value) {
return 1; return 1;
} }
// Виведення значень в стеку
void print_stack(Calculator *calc) { void print_stack(Calculator *calc) {
for (int i = 0; i <= calc->top; i++) { for (int i = 0; i <= calc->top; i++) {
printf("%.6f ", calc->stack[i]); printf("%.2f ", calc->stack[i]);
} }
printf("\n"); printf("\n");
} }