数制转换代码顺序栈java_用顺序栈实现十进制转二进制(c语言)

#include

#include

#define M 100

typedef int ElemType;

typedef struct

{

ElemType data[M];

int top;

}Stack;

//初始化栈

void InitStack(Stack *s)

{

s->top = -1;

}

int Push(Stack *s,ElemType e)

{

if (s->top == M-1)

{

printf("栈满\n");

return 0;

}

s->top++;

s->data[s->top]=e;

return 1;

}

//判断是否为空

int Empty(Stack *s)

{

return(s->top==-1);

}

//出栈

int Pop(Stack *s,ElemType *e)

{

if(Empty(s))

{

printf("\n Stack is free");

return 0;

}

*e=s->data[s->top];

s->top--;

return 1;

}

void Conversion(int N)

{

int e;

Stack *s = (Stack *)malloc(sizeof(Stack));

InitStack(s);

while(N)

{

Push(s,N%2);

N=N/2;

}

while(!Empty(s))

{

Pop(s,&e);

printf("%d",e);

}

}

int main()

{

int n,m;

while(1)

{

printf("1:进行转换,2:退出\n");

scanf("%d",&n);

switch(n)

{

case 1:printf("请输入待转换的整数值: ");

scanf("%d",&m);

printf("转换为二进制值为: ");

Conversion(m);

printf("\n");

break;

case 2:exit(0);

default:printf("error\n");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值