十进制转八进制C++源代码

更新时间:2023-06-09 14:20:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

十进制转八进制C++源代码

C++源代码文辑 代码名称:十进制转换为八进制

编程工具: Microsoft Visual C++ 6.0

作 者:长风夜雨

十进制转八进制C++源代码

#define STACKINCREMENT 10;

#define OVERFLOW 0

#define OK 1

#define ERROR 0

typedefstruct

{

int *base;

int *top;

intstacksize;

} SqStack;

intInitStack (SqStack *S)

{// 构造一个空栈S

S->base = (int *)malloc( 100 * sizeof(int));

if (!S->base) return OVERFLOW; //存储分配失败

S->top = S->base;

S->stacksize = STACK_INIT_SIZE;

return OK;

};

int Push (SqStack *S, int e)

{

if (S->top - S->base >= S->stacksize) //栈满,追加存储空间

{

S->base = (int *) realloc( S->base,

(S->stacksize + 10) *

sizeof (int));

if (!S->base) return OVERFLOW; //存储分配失败

S->top = S->base + S->stacksize;

S->stacksize += STACKINCREMENT;

};

*S->top++ = e;

return OK;

};

int Pop (SqStack *S, int *e)

{ // 若栈不空,则删除S的栈顶元素,

// 用e返回其值,并返回OK;

// 否则返回ERROR

if (S->top == S->base) return ERROR;

*e = *--S->top;

return OK;

};

十进制转八进制C++源代码

boolStackEmpty(SqStack *S)

{

if (S->top - S->base == 0)

{return 1;}

else

{

return 0;

};

};

void conversion ()

{

SqStack S;

int N, e;

InitStack(&S);

printf ( "Please input the num\n");

scanf ("%d",&N);

while (N)

{

Push(&S, N % 8);

N = N/8;

};

while (!StackEmpty(&S))

{

Pop(&S, &e);

printf ( "%d", e );

};

printf ( "\n");

} // conversion

void main()

{

conversion();

}

十进制转八进制C++源代码

附:一个超低价虚拟业务联盟网站:

本文来源:https://www.bwwdw.com/article/3iv1.html

Top