十进制转换八进制算法

十进制转换八进制算法

ID:33648114

大小:101.92 KB

页数:5页

时间:2019-02-28

十进制转换八进制算法_第1页
十进制转换八进制算法_第2页
十进制转换八进制算法_第3页
十进制转换八进制算法_第4页
十进制转换八进制算法_第5页
资源描述:

《十进制转换八进制算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目:数制转换问题1.需求分析将十进制数N转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除8取余法。1)本方案采用顺序栈的方式模拟整个过程。其原理如下:例子:(1348)10=(2504)8NNdiv8Nmod8134816841682102125202从中可以看出,最先产生的余数4是转换加过的最低位,这正好符合栈的“后进先出”的特性。2)功能:从键盘输入任意一个非负十进制整数,输出与其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入。3)测试数据:(1348)

2、10=(2504)8,(0)10=(0)8,(-1234)10输入数据错误。2.概要设计定义顺序栈类型,由键盘输入非负十进制整数N,执行以下循环操作:N%8入栈,N=N/8,直至N=0。主要函数由建立空栈Initsqstack()、入栈Push()、出栈Pop()和main()函数组成。过程中函数调用关系图如下:3.详细设计1)数据类型定义structSqstack{int*bottom;int*top;intmaxsize;};2)系统主要子程序详细设计A.建立空栈intInitsqstack(S

3、qstack&s){s.bottom=(int*)malloc(sizeof(int)*20);if(s.bottom){s.top=s.bottom;s.maxsize=20;return1;}elsereturn0;}B.入栈voidPush(Sqstack&s,inte){*s.top++=e;}C.出栈voidPop(Sqstack&s,int&e){//出栈e=*--s.top;}1.测试分析1.源程序清单#includeusingnamespacestd;struct

4、Sqstack{int*bottom;int*top;intmaxsize;};intInitsqstack(Sqstack&s){//建立空栈s.bottom=(int*)malloc(sizeof(int)*20);if(s.bottom){s.top=s.bottom;s.maxsize=20;return1;}elsereturn0;}voidPush(Sqstack&s,inte){//入栈*s.top++=e;}voidPop(Sqstack&s,int&e){//出栈e=*--s.to

5、p;}intStackEmpty(Sqstack&s){//判断是否为空栈if(s.top==s.bottom)return1;elsereturn0;}intmain(){Sqstacks;intN,e;Initsqstack(s);cout<<"请输入一个非负十进制整数:"<>N;if(N<0)cout<<"输入数据错误,请重新输入:"<

6、N=N/8;}cout<<"输出对应的八进制数:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。