顺序栈 十进制转化二进制

*十进制转换二进制
*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 32

typedef struct
{
int bit[MAX];
int top;
}stack;

stack s;
int i = 0;

void introduce()
{
printf("这是一个利用栈写出来的进制转换的程序。十进制转换二进制。\n");
}

void initstack()                             //初始化栈
{
s.top = 0;
}

void push(int number)
{
if(s.top == MAX)
{
exit(0);
}
else
{
s.bit[s.top] = number;
(s.top)++;
}
}

int pop()
{
if(!s.top)
{
exit(0);
}
else
{
(s.top)--;
return s.bit[s.top];
}
}

int enternumber()
{
int number = 0;             //用于输入
printf("Please enter the number:");
scanf("%d" , &number);
if(number )
return number;
}

void change(int number)
{
int value = 0;
while(number != 0)
{
value  =  number % 2;
push(value);
number /= 2;
i++;
}
}

int main()
{
int number = 0;                          //用于接收enternumber()传来的值
introduce();                      
number = enternumber();
change(number);                          //将number传入运算的函数
for(; i > 0 ; i--)
{
printf("%d" , pop());
}
printf("\n");
return 0;
}
相关文章
相关标签/搜索