BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #43730同步于 2010/9/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

大牛看看这段程序错误怎么改

shensi
2010/9/11镜像同步3 回复
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define OK 1 typedef struct{ char *base; char *top; int stacksize; }Stack; int InitStack(Stack s) {//初始化空栈 s.base=(char *)malloc(STACK_INIT_SIZE*sizeof(char)); if(!s.base) exit(OVERFLOW); s.top=s.base; s.stacksize=STACK_INIT_SIZE; return OK; } int Push(Stack s, char x) {//元素x进栈操作,成功返回1,否则返回0 if(s.top-s.base>=s.stacksize){ s.base=(char *)realloc(s.base, (s.stacksize+STACKINCREMENT)*sizeof(char)); if(!s.base) exit(OVERFLOW); s.top=s.base+s.stacksize; s.stacksize+=STACKINCREMENT; } *s.top++=x; return OK; } char get_top(Stack s) { char e; if(s.top==s.base) e=*(s.top-1); return e; } Stack oper; Stack opnd; if(InitStack(oper)>0)//D:\zs\Z.CPP(43) : error C2143: syntax error : missing ';' before 'if'// //D:\zs\Z.CPP(45) : error C2143: syntax error : missing ';' before 'if'// Push(oper,'#'); if(InitStack(opnd)>0) Push(opnd,'0');
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
zzjin机器人#1 · 2010/9/11
运行了没错误啊。。。你把Stack oper; Stack opnd; if(InitStack(oper)>0) Push(oper,'#'); if(InitStack(opnd)>0) Push(opnd,'0'); 这几段放进一个函数试下?直接写什不行的吧
shensi机器人#2 · 2010/9/12
【 在 zzjin 的大作中提到: 】 : 运行了没错误啊。。。你把Stack oper; : Stack opnd; : if(InitStack(oper)>0) : ................... 我把它加入主程序了,编译通过了,可是还是实现不了功能啊,我就是想得到刚建好的栈的首元素,但是为什么得不到啊~
zzjin机器人#3 · 2010/9/12
get top里面top==base是怎么想的?