#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAXSIZE 100
typedef struct{
 DataType data[MAXSIZE];
 int top;
}SeqStack,*PSeqStack;
PSeqStack S;
S=(PSeqStack)malloc(sizeof(SeqStack));


typedef int DataType ;
int conversation (int n,int r)
{
 PSeqStack S;
 DataType x;
 if(!r)
 {
  printf("基数不能为0");
  return(0);
 }
 S=Init_SeqStack();
 if(!S)
 {
  printf("栈初始化失败");
  return(0);
 }
 while(n)
 {
  Push_SeqStack(S,n%r);
  n=n/r;
 }
 while (!Empty_SeqStack(S))
 {
  Pop_SeqStack(S,&x);
  printf("%d",x);
 }
 Destroy_SeqStack(&S);
}


PSeqStack Init_SeqStack(void)
{
 PSeqStack S;
 S=(PSeqStack)malloc(sizeof(SeqStack));
 if(S)
  S->top=-1
  return S;
}


int Push_SeqStack (PSeqStack S;DataType x)
{
 if (S->top==MAXSIZE-1)
  return 0;
 else
 {
  S->top++;
  S->data[S->top]=x;
  return 1;
 }
}


int Pop_SeqStack(PSeqStack S,DataType *x)
{
 if(Empty_SeqStack (S))
  return 0;
 else
 {
  *x=S->data[S->top];
  S->top--;
  return -1;
 }
}

void Destory_SeqStack (PSeqStack *S)
{
 if(*S)
  free(*S);
 *S=NULL;
 return;
}

int Empty_SeqStack(PSeqStack S)
{
 if(S->top==-1)
  return 1;
 else
  return 0;
}

void main()
{
 int i,a;
    printf("输入要转换的进制!!\n");
    scanf("%d",&a); 
    printf("输入要转换的数!!\n");
    scanf("%d",&i);
 conversation(i,a);
}

 

 

能否懂行的朋友帮我分析下问题出在哪   我基础不是太好,谢谢