代码没问题,但运行不出来,求解决。谢谢啦。

#include
#include
#include
#define N 20
typedef struct {
int base;
int *top;
int stacksize;}Sqstack;
void InitStack(Sqstack *s)
{
s->base=(int
)malloc(N*sizeof(int));
s->base=s->top;
s->stacksize=N;
}

void push(Sqstack *s,int t)
{*s->top++=t;
}

void pop(Sqstack s)
{int e;
e=
--s->top;
printf("%d ",e);}

void conversion(int m,int n){
Sqstack s;
InitStack(&s);
while(m)
{push(&s,m%n);
m=m/n;}
while(s.top!=s.base)
pop(&s);}

int main()
{Sqstack s;
int m,n;
InitStack(&s);
printf("请输入一个十进制数m:");
scanf("%d",&m);
printf("请输入转化进制n:");
scanf("%d,%d",&n);
conversion(m,n);
return 0;}

http://blog.csdn.net/petershina/article/details/8116844

http://blog.csdn.net/cike211/article/details/9165257

以下是我基于对你代码的理解所修改的,希望对你有帮助

#define N 20
typedef struct {
    int *base;
    int *top;
    int stacksize;
}Sqstack;
void InitStack(Sqstack *s)
{
    s->base=(int*)malloc(N*sizeof(int));
    s->top=s->base; //注意顺序
    s->stacksize=N;
}
void push(Sqstack *s,int t)
{
    *s->top=t;
    s->top ++;
}
void pop(Sqstack *s)
{
    int *e =--(s->top);
    printf("%d ",*e);
}
void conversion(int m,int n,Sqstack s){
    //之前多了次初始化
    while(m)
    {
        push(&s,m%n);
        m=m/n;
    }
    while(s.top!=s.base)
        pop(&s);
}
int main()
{Sqstack s;
int m,n;
InitStack(&s);
printf("请输入一个十进制数m:");
scanf("%d",&m);
printf("请输入转化进制n:");
scanf("%d",&n);
conversion(m,n,s);
return 0;
}