Обновить cv3/program.c
This commit is contained in:
parent
6fb8ec1233
commit
4debe4d069
@ -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)) {
|
||||
|
Loading…
Reference in New Issue
Block a user