栈实现进制转化
为什么一直这样报错啊(要崩溃了求大佬指点)
// 设计算法把一个十进制整数转换为二至九进制之间的任一进制数输出。
#include<stdio.h>
typedef struct{
int shu[10];
int top;
}stack;
//定义栈
stack*init(stack*p)
{
p->top=-1;
return p;
}//置空栈
void push(stack*q,int a)
{
if(q->top<9)
{
q->top++;
q->shu[q->top]=a;
}
else
printf("无法输入");
}//入栈操作
int out(stack*s)
{ int b;
b=s->shu[s->top];
s->top--;
return b;
} //出栈操作
int main()
{
int n,n1,n2;
stack*q;
q=init(q);
int i;
scanf("%d",&n);//输入要转化的数
for(i=0;n!=0;i++)
{
n1=n%2;
n=n/2;
push(q,n1);
}//取出所有的余数
for(i=0;q->top>-1;i++)
{
printf("%d",out(q));
}
return 0;
} 