新手求帮看一下代码
#include<stdio.h>
#include<stdlib.h>
typedef struct StackNode
{
int data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
void InitStack(LinkStackPtr *L)
{
(*L)=(LinkStackPtr)malloc(sizeof(StackNode));
if(!(*L))
printf("分配失败\n");
else
(*L)->next=NULL;
}
void Push(LinkStackPtr *L,int e)
{
LinkStackPtr p;
p=(StackNode *)malloc(sizeof(StackNode));
p->data=e;
p->next=(*L)->next;
(*L)->next=p;
}
void Pop(LinkStackPtr *L,int *e)
{
StackNode *p;
p=*L;
if((*L)->next==NULL)
printf("栈空");
else
{
*e=(*L)->next->data;
p=(*L)->next;
free(p);
}
}
void conversion()
{
int N,f,e;
LinkStackPtr s;
InitStack(&s);
printf("请输入要转换的进制数\n");
scanf("%d",&N);
printf("请输入要转换为进制\n");
scanf("%d",&f);
while(N)
{
int h;
h=N%f;
Push(&s,h);
N=N/f;
}
while(s!=NULL)
{
Pop(&s,&e);
printf("%d",e);
}
}
void main()
{
conversion();
}