题目描述
建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。
输入
输入只有一行,就是十进制整数。
输出
转换后的二进制数。
样例输入
10
样例输出
1010
参考程序
#include<stdio.h>
#include<stdlib.h>
#define Maxsize 50
typedef struct stack
{
int data[Maxsize];
int top;
}Stack;
void Init(Stack *&S)
{
S=(Stack *)malloc(sizeof(Stack));
S->top=-1;
}
bool Push(Stack *&S, int elem)
{
if(S->top==Maxsize-1) return false;
S->top++;
S->data[S->top] = elem;
return true;
}
bool Pop(Stack *&S, int &elem)
{
if(S->top ==-1) return false;
elem=S->data[S->top];
S->top--;
return true;
}
int main()
{
int n;
scanf("%d", &n);
Stack *S;
Init(S);
while(n!=0)
{
int elem;
elem =n%2;
Push(S, elem);
n/=2;
}
while(S->top !=-1)
{
int elem;
Pop(S, elem);
printf("%d", elem);
}
return 0;
}
注意
该程序仅供学习参考!