961: 进制转换问题
顺序栈
题目描述
建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。
输入
输入只有一行,就是十进制整数。
输出
转换后的二进制数。
样例输入
10
样例输出
1010
#include<iostream>
#include<malloc.h>
# define size 50
using namespace std;
typedef struct sta
{
int data[size];
int top;
}Stack;
void creat(Stack *&p)
{
p=(Stack *)malloc(sizeof(Stack));
p->top=-1;
}
void trans(Stack *&p,int n)
{
int rem,con;
con=n/2;
rem=n%2;
p->top++;
p->data[p->top]=rem;
while(con!=0)
{
rem=con%2;
con/=2;
p->top++;
p->data[p->top]=rem;
if(p->top==size-1) return; //栈满返回
}
}
void Cout(Stack *&p)
{
for(int i=p->top;i>=0;i--)
{
cout << p->data[i];
}
}
int main()
{
int num;
cin >> num;
Stack *p;
creat(p);
trans(p,num);
Cout(p);
free(p);
return 0;
}