C语言中,下面顺序栈为什么不能运行呢? c语言顺序栈完整程序

1906℃ MAX

C语言中,下面顺序栈为什么不能运行呢?c语言顺序栈完整程序

数据结构问题C语言版,下面的程序为什么不能运行?错在哪里?要怎么改?

#include

#include

int e;

typedef struct

{

int *top;

int *base;

int stacksize;

} sqstack;

int initstack(sqstack *s)

{

s->base=(int *)malloc(10*sizeof(int));

if(!s->base)

exit(0);

s->top=s->base;

s->stacksize=10;

return 1;

}

int push(sqstack *s,int e)

{

if(s->top-s->base>=10)

{

s->base=(int *)realloc(s->base,(s->stacksize+8)*sizeof(int));

if(!s->base)

exit(0);

s->top=s->base+s->stacksize;

s->stacksize+=8;

}

*s->top++=e;

return 1;

}

int pop(sqstack *s)

{

if(s->top==s->base)

return 0;

e=*--s->top;

return 1;

}

intmain()

{

sqstack s;

int m;

int i;

initstack(&s);

printf("请输入要入栈元素:\n");

for(i=0;i<=3;i++)

{

scanf("%d",&m);

push(&s,m);

}

printf("出栈元素顺序为:\n");

for(i=0;i<=3;i++)

{

pop(&s);

printf("%d\t",e);

}

printf("\n");

return 0;

}

帮你改好了,看一下吧,有问题还可以交流下!

我用c语言写了一下栈的基本操作,可是运行不了,求大仙帮助。 代码:#include<stdio.h> #define STACK_IN

写了好长啊 辛苦了

不过你不知道C语言函数参数必须定义类型吗?

每个参数加上类型

把打错的字改过来 比如if(s.pop==s.base)

编译错误都改好了 你再继续调试吧

看了一下 思路上可以细节上有错误

比如if(s-s.base&gt;=s.stacksize) 这种判断需要加上if(s-s.base&gt;=s.stacksize*sizeof(int))

C语言栈的问题 老运行不出来 求解!

#include

#include

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

typedef struct stack

{

int *base;

int *top;

int stacksize;

}sqstack;

void initstack(sqstack *s)

{

s->base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));

s->stacksize=STACK_INIT_SIZE;

printf("chen\n");

}

void push(sqstack *s,int e)

{

if(s->top-s->base>=s->stacksize)

{

s->base=(int*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(int));

s->top=s->base+s->stacksize;

s->stacksize=STACKINCREMENT+s->stacksize;

}

*s->top++=e;

printf("chen\n");

}

void unpush(sqstack *s,int *e)

{

if(s->top!=s->base)

{

*e=*--s->top;

printf("chen\n");

}

}

int main()

{int e;

sqstack p;

initstack(&p);

push(&p,5);

push(&p,4);

unpush(&p,&e);

return 0;

}

C语言程序为什么不能运行

重新设置一下,不要把编译出来的程序直接放到根目录下,

你需要把编译出来程序放到一个文件夹内,因为win7以后系统,

对根目录下运行.exe程序需要管理员权限。