qian言wan语
2016-03-06 14:16
采纳率: 18.2%
浏览 1.6k
已采纳

这段代码有什么错误,为什么输入后就不能运行了??

#include
#define MAX 100

//顺序栈的定义
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;

//初始化
int InitStack(SqStack &S){
S.base=new int[MAX];
if(!S.base){
return 0;
}
S.base=S.top;
S.stacksize=MAX;
return 1;
}

//入栈
int Push_S(SqStack &S,int e){
//将元素e入栈
if(S.top-S.base==S.stacksize){//判断栈是否满
return 0;
}
S.top++=e;
//S.top+=1;
return 1;
}
//出栈
int Pop_S(SqStack &S,int &e){
//用e返回出栈的元素
if(S.top==S.base){//栈空
return 0;
}
e=
--S.top;
return 1;
}

int main(){
SqStack S;
if(InitStack(S)){
printf("顺序栈初始化成功!\n");
}else{
printf("顺序栈初始化失败!\n");
}

printf("请输入入栈元素:");
int e1;
scanf("%d",&e1);
if(Push_S(S,e1)){
    printf("入栈成功!\n");
}else{
    printf("入栈失败!\n");
}

}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2016-03-06 14:26
    已采纳

    S.base=S.top;
    写反了
    S.top=S.base;

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题