首页 > 试题广场 >

下面是将任意一个无符号十进制整数num转换为八进制整数的非递

[填空题]
下面是将任意一个无符号十进制整数num转换为八进制整数的非递归算法,算法中用到一个顺序堆栈来暂存转换过程中的各位八进制数字。请在算法的空白处填入适当内容,使之能够正常工作。
public void change(int num){
    SeqStack ss=new SeqStack1;           //创建顺序堆栈
    while (__){                                             //商不为0
        ss.push(__);                                  //余数进栈
        num=num/8;                                   //求n/8的商
    }
    while (__)                                              //若堆栈非空
    int  x=(__)                                       //元素退栈
    System.out.print(x);                   //元素输出
}
int main() {
    Stack stack = malloc(sizeof(SqStack));
    InitStack(stack);
    int num = 4785;
    while (num > 0) {
        Push(stack,num);
        num /= 8;
    }
    while (stack->base != stack->top) {
        Pop(stack,&num);
        printf("%d",num%8);
    }
    return 0;
}

发表于 2022-04-25 15:15:16 回复(0)