请指点一下,程序能够运行但是输出时有点小错误。谢谢!
#include"stdlib.h" #include<stdio.h>
int s[7];int m;int top;int *v;
void chushihuazhan()
{ v=(int *)malloc(m*sizeof(int));
top=0;
return;
}
int push(int x)
{ if (top==m)
{ printf("Stack-overflow\n");
return;}
top=top+1;
s[top-1]=x;
return(x);
}
int pop(int y)
{
if (top==m)
{ printf("Stack-underflow\n");
return;}
{y=s[top-1];
top=top-1;
return(y);}
}
int duzhanding(int y)
{ if (top==0)
{ printf("Stack empty \n");
return;}
y=s[top-1];
return(y);
}
int main()
{
int m=10; int w,p,i,t;
chushihuazhan();
printf("建立一个容量为%d的栈\n",m);
printf("入栈的各元素先后分别为:\n");
for(t=50;t<=100;t+=10)
{ push(t);
printf("%d\n",t);
}
printf("连续三次退栈的元素先后为:\n");
for(i=1;i<=3;i++)
{ pop(w);
printf("%d\n",w); }
duzhanding(p);
printf("栈顶元素为:%d\n",p);
}
最后调用出栈函数还有输出栈顶元素时输出不正常,请帮忙指正一下。谢谢了!