#include <iostream>
#include <string>
#include <vector>
#define MAXSIZE 100
/*习题3
*/
using namespace std;
typedef struct
{int *base;int *top;int size;
}SqStack;
//初始化
int init(SqStack &S)
{S.base = new int[MAXSIZE];if(!S.base){cout<<"init err:-1"<<endl;return -1;}S.top = S.base;S.size = MAXSIZE;return 1;
}
//入栈
int push(SqStack &S,int e)
{if(S.top-S.base == MAXSIZE){cout<<"push err:-1"<<endl;return -1;}*S.top++ = e;return 1;} //出栈int pop(SqStack &S){if(S.base == S.top){cout<<"pop err:-1"<<endl;return -1;}*--S.top;return 1;} //取栈顶int getTop(SqStack S){if(S.top!=S.base){return *(S.top-1);}}
int main()
{SqStack stack;init(stack);int a;cout<<"请输入a的值:";cin>>a;while(a!=-1){cout<<"请输入a的值:";push(stack,a);cin>>a; }if(a==-1){cout<<"栈顶元素为:"<<getTop(stack)<<endl;pop(stack);}
}