问答详情
源自:3-1 案例改造

数制转换问题

# 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;}

提问者:慕慕2687381 2017-10-12 16:50

个回答

  • 后苍
    2017-10-18 22:07:40

    ......你这是干嘛?看得我头皮发麻。。。