#include<stdio.h>
#define MAX 10
int stack[MAX];
int sp=-1;
int push(int);
int pop(void);
int prtstack(void);
void main()
{
int num,c,p;
printf("어떤 명령을 하시겠습니까?\ni스택에 저장 o 저장된 데이터 축출\np 지금까지 저장된 데이터 출력, 스페이스 종료.\n");
while((c=getchar()) != ' ')
{
if(c == 'i')
{
printf("저장할 데이터를 입력하시오.\n");
scanf("%d",&num);
push(num);
}
if(c == 'o')
{
p=pop();
if(p==-1)
{
printf("저장된 데이터가 존재하지 않습니다.");
}
else
printf("가장 최근에 저장된 데이터를 축출한 값은 %d입니다.\n\n",p);
}
if(c == 'p')
{
prtstack();
}
}
}
int prtstack(void)
{
int f;
printf("지금까지 저장된 데이터 : ");
for(f=0;f<sp+1;f++)
{
printf("%2d ",stack[f]);
}
printf("\n");
return 0;
}
int push(int a)
{
if(sp>=MAX-1)
{
return printf("더이상 저장할 공간이 없습니다.\n");
}
else
stack[++sp]=a;
return 0;
}
int pop(void)
{
if(sp<0)
{
return -1;
}
else
return stack[sp--];
}