比如我输入1 2 3
正确输出应该是:3
但是这个代码运行完输出为:栈空了!!!
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
void Push(SqStack S,int e)
{//插入元素e为新的栈顶元素
if(S.top-S.base==S.stacksize)
{
printf("错误!!!栈满了!!!!");
exit(0);
}
*S.top=e;
S.top++;
}
int GetTop(SqStack S)
{
if(S.top!=S.base)
return *(S.top-1);
else
{
printf("栈空了!!!");
exit(0);
}
}
int main()
{
SqStack S;
//InirStack(S);
S.base=(int *)malloc(sizeof(MAXSIZE));
if(S.base==NULL) exit(0);
S.top=S.base;
S.stacksize=MAXSIZE;
int i,e,n;
printf("请输入_入栈元素个数:");
//system("pause");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d个入栈元素:",i+1);
scanf("%d",&e);
Push(S,e);
}
int ding;
ding=GetTop(S);
printf("栈顶元素为:%d\n",ding);
return 0;
}