From 4debe4d069a597de73f5a9aa747ada5f7977d716 Mon Sep 17 00:00:00 2001 From: Yevhen Kozirovskyi Date: Wed, 16 Oct 2024 22:44:59 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20cv3/program.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv3/program.c | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/cv3/program.c b/cv3/program.c index ce6f1d8..9dbb83a 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -4,44 +4,26 @@ #define MAX_RAZMER 100 -/* - * Структура, описывающая стек - */ + typedef struct { - /* - * Массив, хранящий элементы стека - */ + double chisla[MAX_RAZMER]; - /* - * Индекс, указывающий на верхушку стека - */ + int vershina; } StEk; -/* - * Функция, инициализирующая стек - */ void inicStEk(StEk* stek) { stek->vershina = 0; } -/* - * Функция, проверяющая, является ли стек пустым - */ int isEmpty(StEk* stek) { return stek->vershina == 0; } - -/* - * Функция, проверяющая, является ли стек полным - */ int isFull(StEk* stek) { + return stek->vershina == MAX_RAZMER; } -/* - * Функция, добавляющая элемент в стек - */ void push(StEk* stek, double chislo) { if(isFull(stek)) { printf("no input\n"); @@ -51,9 +33,7 @@ void push(StEk* stek, double chislo) { stek->vershina++; } -/* - Функция, извлекающая элемент из стека -*/ + double pop(StEk* stek) { if(isEmpty(stek)) { printf("no input\n"); @@ -70,7 +50,7 @@ int main() { while(fgets(bufer, sizeof(bufer), stdin)) { char* konec; double chislo = strtod(bufer, &konec); - if(*konec == '\n') { + if(*konec == '\n' && *bufer != '\n' && *bufer != ' ') { push(&stek, chislo); } else if(strcmp(konec, "+\n") == 0) { if(isEmpty(&stek)) {