进制转换问题
建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。
输入
输入只有一行,就是十进制整数。
输出
转换后的二进制数。
样例输入
10
样例输出
1010
#include<stdio.h>
#include<malloc.h>
struct SqStack//栈结构
{
int data[100];//储存数据
int top;//栈指针
};
void InitStack(SqStack *&s)//创建栈
{
s=(SqStack*)malloc(sizeof(SqStack));//申请一个栈的空间,并且将s指向这个空间
s->top=-1;//初始化栈顶指针
}
int main()
{
int n;
struct SqStack *s;//声明指针
scanf("%d",&n);
InitStack(s);//创建栈
while(n!=0)
{
s->top++;//栈顶加1
s->data[s->top]=n%2;//储存模2的数据,即入栈
n=n/2;
}
while(s->top!=-1)//输出栈储存的数据,即出栈
{
printf("%d",s->data[s->top]);
s->top--;
}
}
/*
#include<stdio.h>
int main()
{
int a,b[100];
int i;
scanf("%d",&a);
for(i=0; ;i++)
{
b[i]=a%2;
a=a/2;
if(a==0)
break;
}
for( ;i>=0;i--)
printf("%d",b[i]);
}
*/