*十进制转换二进制
*/
#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;
}