数制转换问题
# include <stdio.h># define OK 1# define ERROR 0# define OVERFLOW -2# define MAXSIZE 10000typedef int SElemType;typedef int Status;typedef struct{ SElemType *base; SElemType *top; int stacksize;}SqStack;Status InitStack(SqStack &S){ S.base=new SElemType[MAXSIZE]; if(!S.base) return OVERFLOW; S.base=S.top; S.stacksize=MAXSIZE; return OK;}Status Push(SqStack &S,SElemType e){ if(S.top-S.base==S.stacksize) return OVERFLOW; *(S.top++)=e; return OK;}Status Pop(SqStack &S,SElemType &e){ if(S.top==S.base) return ERROR; e=*(--S.top); return OK;}Status Conversion(int n){ int i=0; SqStack S; InitStack(S); while((n%8)!=0) { Push(S,n%8); n=n/8; i++; } for(;i>0;i--) { int e; Pop(S,e); printf("%d",e); } return OK;}int main(){ int n; scanf("%d",&n); Conversion(n); return 0;}