第三章习题5第3小题
5.(3) 设计算法,把十进制整数转换为二至九进制之间的任一进制输出。
一、算法及操作
①首先定义了一个最大容量StackSize=100的顺序栈s,然后定义了 指针 top指向栈顶元素,并初始化为-1;②定义转换进制函数Decimaltor;循环体内,要转换的数字num%r(进制),每次取余所得的k值放入顺序栈内,再将num=num/r,直到num=0,退出循环。然后依次输出顺序栈的数据。③在主函数中,输入要转换的数字n及进制m(当m不在2-9之间时抛出错误),然后通过函数传参传给Decimaltor函数。
二、完整代码
#include using namespace std; const StackSize=100; void Decimaltor(int num,int r) { int top,k,s[StackSize]; top=-1; if(r<2||r>9) throw"错误"; cout<<"转为"<>n; cout<<"请选择要使用的进制(2-9):"; cin>>m; Decimaltor(n,m); cout<<"\n\n*****是否要继续转换?1-continue;0-end:"; cin>>a; cout<
三、测试结果