白日做梦嘞 2022-04-04 23:59 采纳率: 86.5%
浏览 20
已结题

数据结构 栈 的进制转换 代码运行不了

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE
#pragma warning(disable:4996);
#include<stdio.h>
#include <stdlib.h>
#define ok 1
#define error 0
#define overflow -2
#define stackmaxsize 100
typedef int selemtype;
typedef struct
{
selemtype* base;
selemtype* top;
int tacksize;
}stack;
char initstack(stack &s)
{
s.base = (selemtype*)malloc(stackmaxsize * sizeof(selemtype));
if (s.base)
exit(overflow);
s.base = s.top;
s.tacksize = stackmaxsize;
return ok;
}
char push(stack& s, selemtype e)
{
if (s.top - s.base >= s.tacksize)
return error;
*s.top = e;
s.top++;
return ok;
}
char pop(stack &s, selemtype e)
{
if (s.base == s.top)
return error;
e = *s.top;
s.top--;
}

void conversion(stack &s, int n)
{
int e;
if (n > 0)
{
while (n)
{
push(s, n %8);
n = n / 8;
}

}
while (s.top != s.base)
{
    pop(s,n);
    printf("%d", n);
}

}

int main()
{
int n;
stack s;
initstack(s);
scanf("%d", &n);
conversion(s, n);

}

img

  • 写回答

1条回答 默认 最新

  • fuill 2022-04-05 01:34
    关注
    #include<stdio.h>
    #include<stdlib.h>
    #define maxvector 150
    struct stack
    {
        int data[maxvector];
        int top;
    };
    void init(struct stack *L)
    {
        memset(L->data,0,sizeof(L->data));
        L->top=0;
    }
    int pop(struct stack *L)
    {
        if(L->top<=0) return -1;
        else return L->data[--L->top];
    }
    void push(struct stack *L,int num)
    {
        if(L->top<maxvector-1)
            L->data[L->top++]=num;
        else
            printf("error");
    }
    int gettop(struct stack L)
    {
        if(L.top<=0) return -1;
        else return L.data[L.top-1];
    }
    void conversion(int n)
    {
        struct stack L;
        init(&L);
        while(n>0)
        {
            push(&L,n%8);
            n/=8;
        }
        while(L.top)
        {
            printf("%d",gettop(L));
            pop(&L);
        }
    }
    int main()
    {
        int n;
        scanf("%d", &n);
        conversion(n);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探