问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

急急急!!!数据结构编程题:写一个程序,将输入的十进制数据M 转换为八进制数据M8,将其调试通过……

发布网友 发布时间:2023-04-29 13:54

我来回答

1个回答

热心网友 时间:2023-11-03 11:10

把修改的地方标出来了,你自己看看
#include<stdio.h>
#include<stdlib.h>
#define N 2
#define initsize 20
#define increment 10
typedef int elemtype;
typedef struct stack{
elemtype *base;
elemtype *top;
int stacksize;
}stack;

void initstack(stack &s)//初始化栈
{s.base=(elemtype *)malloc(initsize*sizeof(elemtype));
if(!s.base)
exit(0);
s.stacksize=initsize;
//s.base=s.top;笔误?
s.top = s.base;}

void push(stack &s,/*elemtype &x*/elemtype x)//入栈,若栈满追加栈空间
//x何必要引用?
{if(s.top-s.base>=initsize)
s.base=(elemtype *)realloc(s.base,(s.stacksize+increment)*sizeof(elemtype));
if(!s.base)
exit(0);
//s.top=s.base+s.stacksize;这句不应该要,原因自己想

s.stacksize+=increment;

*s.top=x;
s.top++;
}

void pop(stack &s,elemtype &x)//出栈
{if(s.base==s.top)
printf("有错误");
else
x=*--s.top;
}

int isempty(stack &s)//判栈空
{if(s.base==s.top)
return 1;
else return 0;
}

void clearstack(stack &s)
{if(s.base==s.top)
return ;
s.base=s.top;
}

void convert(int n)//进制转换
{int x;
stack s;
initstack(s);
while(n!=0)
{
push(s,n%N);
n/=N;
}
while(!isempty(s))
{pop(s,x);
printf("%d",x);
}
clearstack(s);
}

int main()
{
int n;
printf("请输入一十进制数:");
scanf("%d",&n);
printf("转化后的数是:");
convert(n);
return 0;
}

热心网友 时间:2023-11-03 11:10

把修改的地方标出来了,你自己看看
#include<stdio.h>
#include<stdlib.h>
#define N 2
#define initsize 20
#define increment 10
typedef int elemtype;
typedef struct stack{
elemtype *base;
elemtype *top;
int stacksize;
}stack;

void initstack(stack &s)//初始化栈
{s.base=(elemtype *)malloc(initsize*sizeof(elemtype));
if(!s.base)
exit(0);
s.stacksize=initsize;
//s.base=s.top;笔误?
s.top = s.base;}

void push(stack &s,/*elemtype &x*/elemtype x)//入栈,若栈满追加栈空间
//x何必要引用?
{if(s.top-s.base>=initsize)
s.base=(elemtype *)realloc(s.base,(s.stacksize+increment)*sizeof(elemtype));
if(!s.base)
exit(0);
//s.top=s.base+s.stacksize;这句不应该要,原因自己想

s.stacksize+=increment;

*s.top=x;
s.top++;
}

void pop(stack &s,elemtype &x)//出栈
{if(s.base==s.top)
printf("有错误");
else
x=*--s.top;
}

int isempty(stack &s)//判栈空
{if(s.base==s.top)
return 1;
else return 0;
}

void clearstack(stack &s)
{if(s.base==s.top)
return ;
s.base=s.top;
}

void convert(int n)//进制转换
{int x;
stack s;
initstack(s);
while(n!=0)
{
push(s,n%N);
n/=N;
}
while(!isempty(s))
{pop(s,x);
printf("%d",x);
}
clearstack(s);
}

int main()
{
int n;
printf("请输入一十进制数:");
scanf("%d",&n);
printf("转化后的数是:");
convert(n);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医生你好 我脸上跟额头上面长了很多小粉刺 请问这是什么原因引起的 要... 世界上到底是先有的鸡还是先有的蛋 请问是先有蛋,还是先有鸡? Excel怎么设置行高并且垂直 晚上梦见一条又长又小的青蛇追着咬我最后被我爸爸打死了代表什么... 专业技能怎么填我来教你 QQ空间曾经有一个左右接东西 小游戏叫什么名字 帽子先生接东西游戏介绍 趣味卡车接东西游戏介绍 怀孕50天B超的表现 枯径的成语枯径的成语是什么 两许的解释 禄俸的诗句禄俸的诗句是什么 汇齐的网络解释汇齐的网络解释是什么 混成的网络解释混成的网络解释是什么 混一的网络解释混一的网络解释是什么 混并的网络解释混并的网络解释是什么 PCN和ECN的区别是什么? 西门子s7通讯单个循环周期多少 武林夜市什么时候开市? 双色球好久开售106期 福彩好久开市 毛线沟中药市场好久放假重庆 国寿鑫禧宝年金保险多久领一次生存金 国寿鑫禧宝年金保险3年交保10年得多少钱 求用ccc编程的有价值的小项目可以锻炼自己能力的我想锻炼自己 担心牵挂一个人的说说 有借有还歌词说明了什么?表达了啥?谁知道 有借有还什么意思 银渐层和蓝猫配出来什么样子图片 C++编程题,关于数据结构的.急用。。。 这是数据结构线性表的一个编程题,那个高手能按要求给改动一下,谢了啊! 张树明是什么职务?潍柴重机独立董事 荡风的词语荡风的词语是什么 描写春天的四字词语有多少? 梦见抓鱼了好大一条鱼的预兆 之前下载了空间宝然后开了秒赞,不知道空间怎么就被禁言了,怎么办 从贵州安顺寄快递到重庆巫山要多长时间 10年前qq的动态视频能找回吗 杜尔伯特是几线城市 餐厅周年庆活动策划方案【三篇】 什么是杜尔伯特草原文化 信用卡自助活动餐饮方案名称有哪些 户口是杜尔伯特的可以去海伦上高中吗? 奔驰s450l用了什么发动机 奔驰s450l雨刷尺寸 一般买一对玉的吊坠需要多少钱啊,在淘宝网上看见的情侣玉吊坠有一百多的二百多的,是真玉吗 哪位大神帮看看这玉值多少钱? 回乡下发朋友圈的精美句子 适合发朋友圈农村的句子2020