易烊千玺漫画图片高清:跪求利用栈实现数制转换的C源程序!!!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 12:42:49

#include"stdio.h"
#include"stdlib.h"
#define null 0
#define n 10
struct stack{
int *base;
int *top;
int stacksize;
};
void initstack(struct stack *s)
{
s->base=(int*)malloc(20*sizeof(int));
if(!s->base) exit(0);
s->top=s->base;
s->stacksize=20;
return;
}
void push(struct stack*s,int e )
{
if(s->top-s->base>=s->stacksize)
{ s->base=(int*)realloc(s->base,(s->stacksize+n)*sizeof(int));
if(!s->base) exit(0);
s->top=s->base+s->stacksize;
s->stacksize+=n;
}
*(s->top)++=e;
return;
}
void pop(struct stack *s)
{ int e;
if(s->top==s->base) return;
e=*--s->top; printf("%d",e);
return;
}
void clearstack(struct stack*s)
{

if(s->top==s->base) return;
s->top=s->base;
return;
}
void conversion(int m)
{ struct stack s;
int*p=null;
initstack(&s);

while(m)
{ push(&s,m%2);
m=m/2;
}
for(p=s.top-1;p>=s.base;p--)
printf("%d",*p);
clearstack(&s);
}
main()
{int x;
printf("\nplease input a num (radix 10):");
scanf("%d",&x);
printf("\n after conversion (10)%d to 2: ",x);
conversion(x);
printf("\n");
}

这是我以前写的,运行通过的 数制转换程序,供参考.