961: 进制转换问题
题目描述
建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。
输入
输入只有一行,就是十进制整数。
输出
转换后的二进制数。
样例输入
10
样例输出
1010
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int data[100];
int top;
} SqStack;
void initStrack(SqStack *&s)
{
s=(SqStack *) malloc(sizeof(SqStack));
s->top=-1;
}
void ZOpush(SqStack *&s,int c)
{
int i=0;
while(c!=0&&s->top!=99)
{
i=c%2;
c=c/2;
int t=s->top;
s->top++;
s->data[s->top]=i;
}
}
void pri(SqStack *&s)
{
while(s->top!=-1)
{
printf("%d",s->data[s->top]);
s->top--;
}
}
void ClearStack(SqStack *&s)
{
free(s);
}
int main()
{
SqStack *s;
int e;
scanf("%d",&e);
initStrack(s);
ZOpush(s,e);
pri(s);
ClearStack(s);
}