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)) {