Удалить из стека элементы меньше 10

В стек вводятся числа, нужно вывести полный стек, после чего, стек в котором удалены элементы меньше 10. Пример кода, когда удаляются все элементы стека:

#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>
struct kkk 
{
    float elem[15]; 
    int top; // Индекс верхнего элемента стека
};
struct kkk* st, * element; // указатели

void Init(struct kkk* st) // инициализация
{
    st->top = NULL; 
}

void Push(struct kkk* st, float f) // Вношу элемент в стек
{
    if (st->top < 15)
    {
        st->elem[st->top] = f;
        st->top++;
    }
    else
        printf("Стек полный \n");

}

float Pop(struct kkk* st) // удаляю элемент из стека
{
    float el;
    if ((st->top) > 0)
    {
        st->top--;
        el = st->elem[st->top];
        return el;
    }
    else
    {
        printf("Стек пустой \n");
        return 0;
    }
}

float Vulychtop(struct kkk* st) // удаляю вершину стека
{
    if ((st->top) > 0) {
        return(st->elem[st->top - 1]);
    }
    else {
        printf("Стек пустой!\n");
        return 0;
    }
}

int Gettop(struct kkk* st) // Верхний элемент стека бкз удаления
{
    return(st->top);
}

int Isempty(struct kkk* st) // Проверка, пустой ли стек
{
    if ((st->top) == 0)
        return 1;
    else return 0;
}

void Vuvid(struct kkk* st) // Вывод всех элементов
{
    int i;
    i = st->top;
    if (Isempty(st) == 1) return;
    do {
        i--;
        printf("%f\n", st->elem[i]);
    } while (i > 0);
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i, n, k;
    float znach;
    element = (struct kkk*)malloc(sizeof(struct kkk));
    Init(element);
    printf("Введите кол-во элементов в стеке \n");
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        printf("Введите элемент %d: ", i);
        scanf("%f", &znach);
        Push(element, znach);
    }
    printf("В стеке %d элементов \n", Gettop(element));
    printf("\n");
    Vuvid(element);
    printf("Верхний элемент %f\n", Vulychtop(element));
    do {
        printf("Элемент, который удаляется %f, ", Pop(element));
        printf("В стеке осталось %d элементов \n", Gettop(element));
    } while (Isempty(element) == 0);
    return 0;
}

Ответы (0 шт):