#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int size;
int data[20];
}stack;
void initstack(stack *s)
{
s->size=0;
}
int push(stack *s,int k)
{
if(s->size==20)
{
printf("栈已满\n");
return 0;
}
else{
s->data[s->size]=k;
s->size=(s->size)+1;
}
return 0;
}
int pop(stack *s)
{ int h=0;
if(s->size>=0)
{
h=s->data[s->size];
s->size=(s->size)-1;
}
else
{
printf("栈已空\n");
return 0;
}
printf("%d",h);
return 0;
}
void change(stack *s,int i,int j)
{
while(i)
{
push(s,i%j);
i=i/j;
}
s->size=s->size-1;
while(s->size+1)
{
pop(s);
}
printf("转换完成\n");
}
int main(int argc, char *argv[])
{
int i,j;
stack *s=(stack *)malloc(sizeof(stack));
printf("输入十进制数\n");
scanf("%d",&i);
printf("要转换的进制\n");
scanf("%d",&j);
initstack(s);
change(s,i,j);
return 0;
}