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

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

#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-04 17: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;
    }
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月23日
  • 创建了问题 4月4日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部