栈实现进制转化

为什么一直这样报错啊(要崩溃了求大佬指点)
// 设计算法把一个十进制整数转换为二至九进制之间的任一进制数输出。
#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;
  } 


#C语言编程#
全部评论
一般是数组越界
点赞 回复 分享
发布于 2022-10-04 18:48 辽宁

相关推荐

陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务