类似火炬之光的大作:C语言数据结构问题,帮解决一下

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 14:06:09
/*对于输入的一个任意的十进制整数,打印输出与其等值的八进制数*/

1 #include "stdio.h"
2 #include "conio.h"
3 #define stack_int_size 100; //存储空间初始分配量
4 #define zengliang 10; //存储空间分配增量
5 #define ERROR 0;
6 #define OVERFLOW -2;
7 #define TRUE 1;
8 #define OK 1;
9
10 typedef struct{
11 int *top; //栈顶指针
12 int *base; //栈底指针
13 int stacksize; //当前以分配的存储空间
14 }s;
15 int initstack(&s) //构造一个空栈
16 {
17 s.base=(int *)malloc(stack_int_size*sizeof(int));
18 if(!s.base)
19 exit (OVERFLOW);
20 s.top=s.base;
21 s.stacksize=stack_int_size;
22 return OK;
23 }
24 int push(&s,int x) //插入元素X为栈顶元素
25 {
26 if(s.top-s.base>=s.stacksize) //栈满,追加存储空间
27 {
28 s.base=(int *)realloc(s.base,(s.stacksize+zengliang)*sizeof(int));
29 if(!s.base)
30 exit OVERFLOW; //存储空间分配失败
31 s.top=s.base+s.stacksize;
32 s.stacksize+=zengliang;
33 }
34 *s.top++=x;
35 return OK;
36 }
37 int stackempty(&s) //检查栈是否为空栈,是返回TRUE,不是返回FALSE
38 {
39 if(s.top==s.base)
40 return TRUE;
41 else
42 return FALSE;
43 }
44 int pop(&s,int e) //删除栈顶元素,并用e返回其值,并返回OK
45 {
46 if(s.top==s.base)
47 return ERROR;
48 e=*--top;
49 return OK;
50 }
51
52 void main()
53 {
54 int n;
55 int e;
56 printf("请输入一个整数:");
57 scanf("%d",&n);
58 initstack(s); //构造空栈
59 while(n) //给栈压入元素
60 {
61 push(s,n%8);
62 n=n/8;
63 }
64 while(!stackempty(s))
65 {
66 pop(s,e) //读取栈中元素
67 printf("%d",e);
68 }
69 getch();
70 return 0;
71 }

错误 noname.c 15: 说明语法错误
编译环境 wintc 1.91 +windowsXP

求高手看看这个程序,到底怎么回事?
谢谢你这么快回复我。
参数类型?
具体点,把代码给我写上好吗?
谢谢

15 int initstack(&s) //构造一个空栈

没有加参数类型