一段程序有个错,大牛看看哈~~~感激不尽~~~
#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;
Stack oper;
Stack opnd;
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;
}
if(InitStack(oper)>0)//D:\zs\Z.CPP(43) : error C2143: syntax error : missing ';' before 'if'//
Push(oper,'#');
if(InitStack(opnd)>0)
Push(opnd,'0');
void main()
{
Push(opnd,'9');
printf("%c",get_top(opnd));
}
不知道是怎么回事,大牛提供一下思路,我不太会写,这段是从数据结构上看到的,但是不会用~
[ 本帖最后由 shensishensi 于 2010-9-11 19:01 编辑 ]