Обновить cv3/program.c

This commit is contained in:
Yevhen Kozirovskyi 2024-10-16 22:44:59 +00:00
parent 6fb8ec1233
commit 4debe4d069

View File

@ -4,44 +4,26 @@
#define MAX_RAZMER 100 #define MAX_RAZMER 100
/*
* Структура, описывающая стек
*/
typedef struct { typedef struct {
/*
* Массив, хранящий элементы стека
*/
double chisla[MAX_RAZMER]; double chisla[MAX_RAZMER];
/*
* Индекс, указывающий на верхушку стека
*/
int vershina; int vershina;
} StEk; } StEk;
/*
* Функция, инициализирующая стек
*/
void inicStEk(StEk* stek) { void inicStEk(StEk* stek) {
stek->vershina = 0; stek->vershina = 0;
} }
/*
* Функция, проверяющая, является ли стек пустым
*/
int isEmpty(StEk* stek) { int isEmpty(StEk* stek) {
return stek->vershina == 0; return stek->vershina == 0;
} }
/*
* Функция, проверяющая, является ли стек полным
*/
int isFull(StEk* stek) { int isFull(StEk* stek) {
return stek->vershina == MAX_RAZMER; return stek->vershina == MAX_RAZMER;
} }
/*
* Функция, добавляющая элемент в стек
*/
void push(StEk* stek, double chislo) { void push(StEk* stek, double chislo) {
if(isFull(stek)) { if(isFull(stek)) {
printf("no input\n"); printf("no input\n");
@ -51,9 +33,7 @@ void push(StEk* stek, double chislo) {
stek->vershina++; stek->vershina++;
} }
/*
Функция, извлекающая элемент из стека
*/
double pop(StEk* stek) { double pop(StEk* stek) {
if(isEmpty(stek)) { if(isEmpty(stek)) {
printf("no input\n"); printf("no input\n");
@ -70,7 +50,7 @@ int main() {
while(fgets(bufer, sizeof(bufer), stdin)) { while(fgets(bufer, sizeof(bufer), stdin)) {
char* konec; char* konec;
double chislo = strtod(bufer, &konec); double chislo = strtod(bufer, &konec);
if(*konec == '\n') { if(*konec == '\n' && *bufer != '\n' && *bufer != ' ') {
push(&stek, chislo); push(&stek, chislo);
} else if(strcmp(konec, "+\n") == 0) { } else if(strcmp(konec, "+\n") == 0) {
if(isEmpty(&stek)) { if(isEmpty(&stek)) {