十进制转换八进制算法(6页)Good is good, but better carries it
精益求精,善益求善
题目:数制转换问题1
需求分析将十进制数 N 转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除 8 取余法
1)本方案采纳顺序栈的方式模拟整个过程
其原理如下:例子:(1348)10=(2504)8NN div 8N mod 8134816841682102125202从中可以看出,最先产生的余数 4 是转换加过的最低位,这正好符合栈的“后进先出”的特性
2)功能:从键盘输入任意一个非负十进制整数,输出与其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入
3)测试数据:(1348)10=(2504)8 ,(0)10=(0)8,(-1234)10 输入数据错误
概要设计定义顺序栈类型,由键盘输入非负十进制整数 N,执行以下循环操作:N%8 入栈,N=N/8,直至 N=0
主 要 函 数 由 建 立 空 栈 Initsqstack ( ) 、 入 栈 Push ( ) 、 出 栈 Pop ( ) 和main()函数组成
过程中函数调用关系图如下:3
详细设计1)数据类型定义struct Sqstack{int *bottom;int *top;int maxsize;};2)系统主要子程序详细设计A.建立空栈int Initsqstack (Sqstack &s){s
bottom =(int *)malloc(sizeof (int)*20);if(s
bottom){s
top =s
bottom;s
maxsize =20;return 1;}else return 0;}B.入栈void Push(Sqstack &s,int e){*s
top++=e;}C.出栈void Pop(Sqstack &s,