国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

編程基于棧的操作實(shí)現(xiàn)將任意一個(gè)非負(fù)十進(jìn)制數(shù),打印輸出與其等值的八進(jìn)制數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了編程基于棧的操作實(shí)現(xiàn)將任意一個(gè)非負(fù)十進(jìn)制數(shù),打印輸出與其等值的八進(jìn)制數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

提示:數(shù)據(jù)結(jié)構(gòu)進(jìn)制轉(zhuǎn)化:

編程基于棧的操作實(shí)現(xiàn)將任意一個(gè)非負(fù)十進(jìn)制數(shù),打印輸出與其等值的八進(jìn)制數(shù)


一、第一種寫法

代碼如下(示例):

//Author:北硝 Date:2023.3.25
#include <stdio.h>
#include <stdlib.h>
//本程序主要實(shí)現(xiàn)功能說明
//編程基于棧的操作實(shí)現(xiàn)將任意一個(gè)非負(fù)十進(jìn)制數(shù),打印輸出與其等值的八進(jìn)制數(shù);

#define STACK_INIT_SIZE 100
#define STACK_INCREMENT 10
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0

typedef int SElemType;
typedef int Status;

typedef struct {
    SElemType* base;
    SElemType* top;
    int stacksize;
} SqStack;

Status InitStack(SqStack* S) {
    S->base = (SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
    if (!S->base) {
        return OVERFLOW;
    }
    S->top = S->base;
    S->stacksize = STACK_INIT_SIZE;
    printf("棧初始化成功!\n");
    return OK;
}

Status Push(SqStack* S, SElemType e) {
    if (S->top - S->base >= S->stacksize) {
        S->base = (SElemType*)realloc(S->base, (S->stacksize + STACK_INCREMENT) * sizeof(SElemType));
        if (!S->base) {
            return OVERFLOW;
        }
        S->top = S->base + S->stacksize;
        S->stacksize += STACK_INCREMENT;
    }
    *S->top++ = e;
    return OK;
}

Status Pop(SqStack* S, SElemType* e) {
    if (S->top == S->base) {
        return ERROR;
    }
    *e = *--S->top;
    return OK;
}

Status StackEmpty(SqStack S) {
    if (S.top == S.base) {
        return TRUE;
    }
    return FALSE;
}

int main() {
    SqStack S;
    int N, e;
    InitStack(&S);
    printf("請(qǐng)輸入一個(gè)十進(jìn)制數(shù):");
    scanf_s("%d", &N);
        while (N) {
            Push(&S, N % 8);
            N = N / 8;
        }
    printf("轉(zhuǎn)換為八進(jìn)制數(shù)為:");
    while (!StackEmpty(S)) {
        Pop(&S, &e);
        printf("%d", e);
    }
    printf("\n");
    return 0;
}

運(yùn)行效果展示:對(duì)于輸入的任意一個(gè)非負(fù)十進(jìn)制整數(shù),打印輸出與其等值的八進(jìn)制數(shù),數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)

二、第二種寫法

/Author:北硝 Date:2023.3.25
#include <stdio.h>
#include <stdlib.h>

#define STACK_SIZE 50

typedef struct {
    int top;
    int stack[STACK_SIZE];
} Stack;

void initStack(Stack *s) {
    s->top = -1;
}

void push(Stack *s, int value) {
    if (s->top >= STACK_SIZE - 1) {
        printf("Stack Overflow\n");
        return;
    }
    s->top++;
    s->stack[s->top] = value;
}

int pop(Stack *s) {
    if (s->top < 0) {
        printf("Stack Underflow\n");
        exit(1);
    }
    int value = s->stack[s->top];
    s->top--;
    return value;
}

int isEmpty(Stack *s) {
    return (s->top == -1);
}

void printOctal(int num) {
    Stack s;
    initStack(&s);

    while (num != 0) {
        int remainder = num % 8;
        push(&s, remainder);
        num /= 8;
    }

    if (isEmpty(&s)) {
        printf("0");
    }

    while (!isEmpty(&s)) {
        int octalDigit = pop(&s);
        printf("%d", octalDigit);
    }
}

int main() {
    int num;
    printf("請(qǐng)輸入一個(gè)十進(jìn)制數(shù): ");
    scanf_s("%d", &num);
    printf("轉(zhuǎn)換為八進(jìn)制數(shù)為: ");
    printOctal(num);
    printf("\n");
    return 0;
}

運(yùn)行效果展示:
對(duì)于輸入的任意一個(gè)非負(fù)十進(jìn)制整數(shù),打印輸出與其等值的八進(jìn)制數(shù),數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)


總結(jié)

數(shù)據(jù)結(jié)構(gòu)中編程基于棧的操作實(shí)現(xiàn)將任意一個(gè)非負(fù)十進(jìn)制數(shù),打印輸出與其等值的八進(jìn)制數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-737518.html

到了這里,關(guān)于編程基于棧的操作實(shí)現(xiàn)將任意一個(gè)非負(fù)十進(jìn)制數(shù),打印輸出與其等值的八進(jìn)制數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包