为了账号安全,请及时绑定邮箱和手机立即绑定

(和这个课程不相关,不知道该去哪里求教了)这个代码哪里错了,我在vs2013 怎么运行不出来 ,求大神 !!!!

#include<stdio.h>

#include<stdlib.h>

#define LIST_INIT_SIZE 100

#define LISTINCRAMENT 10

#define INFEASIBLE -1

#define OK 1

#define OVERFLOW -2

#define ERROR 0

#define FALSE 0

#define TRUE 1

typedef int Status;

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

#define SElemType char

typedef struct{

SElemType *base;

SElemType *top;

int stacksize;

}SqStack;

Status InitStack(SqStack &S){

S.base = (SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));

if (!S.base) exit(OVERFLOW);

S.top = S.base;

S.stacksize = STACK_INIT_SIZE;

return OK;

}

Status GetTop(SqStack &S, SElemType &e){

if (S.top == S.base) return ERROR;

e = *(S.top - 1);

return OK;

}

Status Push(SqStack &S, SElemType e){

if (S.top - S.base >= S.stacksize){

S.base = (SElemType*)realloc(S.base, (S.stacksize + STACKINCREMENT)*sizeof(SElemType));

if (!S.base)exit(OVERFLOW);

S.top = S.base;

S.stacksize += STACKINCREMENT;

}

*S.top++ = e;

return OK;

}

Status Pop(SqStack &S, SElemType &e){

if (S.top == S.base) return ERROR;

e = *S.top--;

return OK;

}

Status StackEmpty(SqStack &S){

if (S.top == S.base)

return TRUE;

else

return FALSE;

}


int main(){

SqStack S, H;

char e;

int i, n;

char t[80];

InitStack(S);

InitStack(H);

printf("请输入车厢长度:");

scanf_s("%d", &n);

if (n > 80) exit(OVERFLOW);

printf("请输入硬席(H)和软席车厢(S)序列:");

for (i = 0;i < n; ++i){

scanf_s("%c", &t[i]);

}

for (i = 0; i < n; i++){

if (t[i] == 'H')

Push(H,t[i]);

else 

Push(S,t[i]);

}

while (!StackEmpty(S)){

Pop(S, e);

printf("%c", e);

}

while (!StackEmpty(H)){

Pop(H, e);

printf("%c", e);

}

return 0;

}


正在回答

2 回答

报错信息发出来看看?

0 回复 有任何疑惑可以回复我~
#1

去南极给企鹅洗热水澡 提问者

他没有报错 ,就是输出是不正确的,应该输出的是排列好的“SSSHHH”这种形式呀,可是那里输出的是汉字==
2015-10-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

(和这个课程不相关,不知道该去哪里求教了)这个代码哪里错了,我在vs2013 怎么运行不出来 ,求大神 !!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信