順序棧 十進制轉化二進制

*十進制轉換二進制
*/
#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;
}
相關文章
相關標籤/搜索