已经给出了代码的情况下如何利用栈实现十进制转换成二进制

已经给出了代码的情况下如何利用栈实现十进制转换成二进制呢 有没有知道怎么解决的 已经给了顺序栈的代码 可是我不知道mian.cpp的怎么写了不知道有没有知道怎么解决

img

#include <stdio.h>
#include <stdlib.h>

#define STACK_MAX_SIZE 50

int stack[STACK_MAX_SIZE];  // 定义一个栈
int top = -1;  // 栈顶指针初始化为-1

int is_empty() {
    return top == -1;
}

int is_full() {
    return top == STACK_MAX_SIZE - 1;
}

void push(int value) {
    if (is_full()) {
        printf("Error: stack is full!\n");
        exit(EXIT_FAILURE);
    }
    stack[++top] = value;
}

int pop() {
    if (is_empty()) {
        printf("Error: stack is empty!\n");
        exit(EXIT_FAILURE);
    }
    return stack[top--];
}

int decimal_to_binary(int decimal) {
    int binary = 0, digit, sign = 1;
    if (decimal < 0) {  // 负数的情况
        decimal = -decimal;
        sign = -1;
    }
    while (decimal > 0) {
        digit = decimal % 2;
        push(digit);
        decimal /= 2;
    }
    while (!is_empty()) {
        digit = pop();
        binary = binary * 10 + digit;
    }
    return sign * binary;
}

int main() {
    int decimal, binary;

    printf("请输入一个十进制数:\n");
    scanf("%d", &decimal);

    binary = decimal_to_binary(decimal);

    printf("%d的二进制表示为:%d\n", decimal, binary);

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^