#include<stdio.h>
#define maxsize 50 /*栈存储空间的总分配量*/
typedef char DataType;
typedef struct
{
DataType stack[maxsize]; /*存放栈中元素的数组*/
int top; /* 指向栈顶位置*/
}
StackType;
void StackInit(StackType *s) /* 初始化栈*/
{
s->top=-1;
}
void push(StackType *s, DataType d) /* 出栈*/
{
if(s->top==maxsize-1)
printf("overflow\n");
else
{
s->top++;
s->stack[s->top]=d;
}
}
void display(StackType *L) /* 显示栈的内容*/
{
int i;
printf("转化为二进制数:");
for (i=L->top;i>=0;i--)
printf("%d",L->stack[i]);
printf("\n");
}
void deciToBinary(StackType *s,int n) /*二进制处理函数*/
{
int mod;
while(n!=0)
{
mod=n%2;
push(s,mod);
n=n/2;
}
display(s); //调用显示函数
printf("\n");
}
void main()
{
int n;
StackType s; //定义一个栈s
StackInit(&s); //给栈s初始化
printf("请输入一个十进制数:");
scanf("%d",&n);
deciToBinary(&s,n); //调用二进制处理函数
system("pause");
}
评论5