Хм... да много чего неправильного получается, давайте сначала начнём.
Насколько я понимаю, данные должны вводиться с клавиатуры....
Они нигде не вводятся, не генерируются, не хранятся в коде программы...

end=PutInStack(end); - никогда не вернёт NULL, поскольку malloc вернёт NULL только когда не сможет выделить память)))
Предлагаю исправить для начала схему генерирования нового элемента.

Если специальность связана с программированием рекомендую сразу использовать стандартную терминологию:
push - "запихнуть" в стек
pop - "вытолкнуть".
Да и с другими структурами данных в принципе то же самое.

PS. ВНТУ - случаем, не Волынский университет?