C语言数据结构,下面程序不能运行,要怎么改?
发布网友
发布时间:2024-01-01 14:09
我来回答
共3个回答
热心网友
时间:2024-01-29 20:27
问题好多阿,我给你改了以下,可以运行了。 你最好学习下如何用gdb调试程序
#include <stdio.h>
#include<malloc.h>
#define MAX_SIZE 255
void initstack();
void push(int e);
void pop();
struct sqstack
{
int *base;
int *top;
int stacksize;
} s;
int main()
{
int a;
int i;
initstack();
for(i=0;i<10;i++)
{
scanf("%d",&a);
push(a);
}
for(i=0;i<10;i++)
{
pop();
}
return 0;
}
void initstack()
{
s.stacksize=MAX_SIZE;
s.base=(int *)malloc(MAX_SIZE * sizeof(int));
s.top=s.base;
}
void push(int e)
{
*(s.top)=e;
s.top++;
}
void pop()
{
s.top--;
printf("%d",*s.top);
}追问我原来的程序错在哪里,举出几处说说吧
热心网友
时间:2024-01-29 20:28
#include <stdio.h>
#include <malloc.h>
void initstack();
void push(int e);
void pop();
struct sqstack
{
int *base;
int *top;
int stacksize;
}s;
int main()
{
int a;
initstack();
for(int i=0;i<10;i++)
{
scanf("%d",&a);
push(a);
}
for(int i=0;i<10;i++)
{
pop();
}
return 0;
}
void initstack()
{
s.stacksize = 20;
s.base=(int *)malloc(s.stacksize * sizeof(int));
s.top=s.base;
}
void push(int e)
{
*(s.top) = e;
s.top++;
}
void pop()
{
s.top--;
printf("%d ",*(s.top));
}
热心网友
时间:2024-01-29 20:28
压栈错了