数制转换(将十进制转成二进制)

作者在 2008-11-14 09:21:23 发布以下内容
#include<stdio.h>
#define maxsize  50
#define elemtype int
struct stack//定义了一个栈;
{
elemtype elem[maxsize];
int top;
};
int fullst(struct stack *s)//判断栈的空间是否已满,若满返回1,否则返回0;
{
if(s->top==maxsize-1)
return (1);
else
return (0);
}
void initstack(struct stack *s)//栈的初始化;
{
s->top=-1;
}
int pushst(struct stack *s,int key)//压栈,先判断空间是否已满,若不满,则入栈;
{
if(fullst(s))
printf("空间已满!");
else
{
s->top++;
s->elem[s->top]=key;
}
return (1);
}
void outst(struct stack *s)//元素弹出栈,先判断战是否为空,若不为空则输出元素;
{
int temp;
if(s->top==-1)
printf("没有数据");
else
while(s->top>-1)
{
temp=s->elem[s->top];
printf("%d\t",temp);
s->top--;}
;
}
void print()
{
struct stack s;//定义一个栈,用来存放二进制数
int N,B=2;    //N代表十进制数
int temp;
printf("输入一个十进制数:N=");
scanf("%d",&N);
printf("%d转换成二进制数",N);
initstack(&s);
while(N>0)
{
temp=N%B;
pushst(&s,temp);
N=N/B;
}
outst(&s);
}
 
void main()
{
print();
}
交流角落 | 阅读 2824 次
文章评论,共0条
游客请输入验证码
文章归档