Обновить 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