*十進制轉換二進制
*/
#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;
}