zoukankan      html  css  js  c++  java
  • HNCU 1330: 算法3-1:八进制数

    题目描述
    将十进制数转换为八进制,并输出。
    这里写图片描述
    图:将十进制数转换为八进制并输出
    输入
    输入包含若干十进制正整数。

    输出
    输出相应的八进制数,每个占一行。

    样例输入
    1
    2
    3
    7
    8
    9
    19
    10020345
    样例输出
    1
    2
    3
    7
    10
    11
    23
    46162771

    栈的简单应用

    #include<stdio.h>
    #include<stdlib.h>
    
    #define STACK_INIT_SIZE 100
    #define STACKINCREMENT 10
    #define OVERFLOW 0
    #define OK 1
    #define ERROR 0
    typedef int SElemType;
    typedef int Status;
    
    typedef struct {
        SElemType *base;
        SElemType *top;
        int stacksize;
    }SqStack; 
    
    Status InitStack(SqStack *p)//构造一个空栈p 
    {
        p->base = (SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
        if(!p->base )
            exit(OVERFLOW);
        p->top = p->base;
        p->stacksize = STACK_INIT_SIZE;
        return OK;
    }
    
    Status Push(int e,SqStack *p)//插入e为栈的新元素 
    {
        SElemType *newbase;
        if((p->top -p->base) >= p->stacksize )
        {
            newbase = (SElemType*)realloc(p->base,(STACKINCREMENT+p->stacksize )*sizeof(SElemType));
            if(!newbase)
                exit(OVERFLOW);
            p->base = newbase;
            p->stacksize += STACKINCREMENT;
        }
         *(p->top)++ = e;
    
        return OK;
    }
    
    Status StackEmpty(SqStack *p)//若栈为空栈,则返回OK,否则返回ERROR 
    {
        if(p->base == p->top )
            return OK;
        return ERROR;
    }
    
    Status Pop(SqStack *p,int *n)//若栈不为空,则删除栈顶元素,用*n返回其值 
    {
        if(p->base == p->top )
            return ERROR;
        *n = *(--p->top);
        return OK;
    }
    void Conversion(int n,SqStack *p)//对于任意输入的一个非负十进制整数,打印输出与其等值的八进制数 
    {
        int e;
        InitStack(p);
        while(n)
        {
            Push(n%8,p);
            n/=8;
        }
        while(!StackEmpty(p))
        {
            Pop(p,&e);
            printf("%d",e);
        }
        printf("
    ");
    }
    
    int main()
    {
        int n;
        SqStack p;
        while(scanf("%d",&n)!=EOF)
        {
            Conversion(n,&p);
        }
        return 0;
    } 
  • 相关阅读:
    1144 The Missing Number (20分)
    1145 Hashing
    1146 Topological Order (25分)
    1147 Heaps (30分)
    1148 Werewolf
    1149 Dangerous Goods Packaging (25分)
    TypeReference
    Supervisor安装与配置()二
    谷粒商城ES调用(十九)
    Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
  • 原文地址:https://www.cnblogs.com/hellocheng/p/7350135.html
Copyright © 2011-2022 走看看