输入一个十进制整数,将其转换为二进制整数,然后输出。(要求利用顺序栈出、入栈算法实现)

2022-04-07 教育 377阅读
测试结果:
987
1111011011

代码:
#include
#include
#include"conio.h"
#include
#defineM100

typedefintdatatype;//datetype代替int

typedefstructseqstack
{
datatypedata[M];
inttop;
};//结构体定义

voidInitStack(seqstack*s)//栈的初始化,开始没有元素,栈顶指针为-1
{
s->top=-1;
}

intStackEmpty(seqstack*s)//判断栈是否为空
{
if(s->top>=0)
return1;
else
return0;
}

seqstack*push(seqstack*s,datatypex)//元素入栈,top上移。如果top=99已满(栈容量最大100)
{
if(s->top==M-1)
returnNULL;
else
{
s->top++;s->data[s->top]=x;
}
returns;
}

datatypepop(seqstack*s)//元素弹出
{
datatypex;
x=s->data[s->top];
s->top--;
returnx;
}

main()
{
seqstack*s;
datatypen,e;
inti=0,j=0;
scanf("%u",&n);
s=(structseqstack*)malloc(sizeof(int));
if(s==NULL)exit(0);

InitStack(s);
while(n)
{push(s,n%2);//出2取余
i++;
n=n/2;//除2
}
while(j{
j++;
e=pop(s);
printf("%d",e);
}
getch();
}

你调试的时候把//注释的汉字全部去掉!

楼主好运!
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com