十进制转八进制

来源:互联网 发布:搭建python开发环境 编辑:程序博客网 时间:2024/05/22 04:42
#include <iostream>using namespace std;const int stack_size=30;const int stack_increase=10;typedef struct {int* base;int *top;int length;}SqStack; SqStack InitStack(SqStack &S){S.base =(int *)malloc(stack_size * sizeof(int));if(!S.base) exit (OVERFLOW);S.top=S.base;S.length=stack_size;return S;}bool StackEmpty(SqStack &S){if(S.base==S.top)return true;}int Push(SqStack &S,int e){if(S.top-S.top>stack_size){S.base=(int *)realloc(S.base,(S.length+stack_increase)*sizeof(int));if(!S.base)exit(OVERFLOW);S.top=S.base+S.length;S.length+=stack_increase;}*S.top++=e;    return e;}int Pop(SqStack &S,int &e){if(S.top==S.base)return 0;e = *(--S.top);return e;}int Getnumber(SqStack &S){return S.top-S.base;}void main(){SqStack test;InitStack(test);int e;cout<<"Please enter an number(按Ctrol+Z结束):"<<endl;int N;cin>>N;while (N){Push(test,N%8);N=N/8;}int num=Getnumber(test);for(int i=0;i<=num-1;++i){Pop(test,e);    cout<<e;    }}