Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
 
void Adding(void);
void Pusto(void);
void Izvlech(void);
void Printe(void);
 
struct S{
 int x;
 int y;
 };
 
int Last=-1;
struct S stek[6];
struct S *st=stek;
 
void main(void){
 Printe();
 return;
}
 
void Printe(void){
char kluch;
 printf("\nЧто сделать со стеком?");
 printf("\n1 = Добавить один элемент");
 printf("\n2 = Проверка, определяющая, пуст ли стек");
 printf("\n3 = Извлечение одного элемета");
 printf("\n4 = Выход");
 kluch=getch();
  switch(kluch){
   case '1': Adding(); break;
   case '2': Pusto(); break;
   case '3': Izvlech(); break;
   case '4': exit(1);
 }
 return;
}
 
void Adding(void){
 int f;
 int fg;
 if(Last<5){
  Last++;
  printf("\nВведите добавляемые x и y через пробел:");
  scanf("%d %d",&f,&fg);
  (st+Last)->x=f;
  (st+Last)->y=fg;
  printf("\n Добавленные элементы: %d, %d",f,fg);
  getch();
 }
 else{
 printf("\n Стек полон!");
 getch();
 }
 Printe();
 return;
}
 
void Pusto(void){
 if(Last==-1){
 printf("\n Стек пуст!");
 }
 else{
 printf("\n Стек не пуст");
 }
 getch();
 Printe();
}
 
void Izvlech(void){
 if(Last>-1){
 int f;
 int fg;
 f=(st+Last)->x;
 fg=(st+Last)->y;
 (st+Last)->x=(st+Last)->y=0;
 Last--;
 printf("\n Извлечено: %d, %d",f,fg);
 getch();
 }else{
 printf("\nОперация невозможна, стек пуст!");
 getch();
 }
 Printe();
return;
}