代码如下:
注意:
1、p48页 算法3.1
2、把此段代码添加到“数据结构(严蔚敏)顺序栈” 就可以了
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数
void conversion() /* 算法3.1 */
{ SqStack s;
unsigned n; /* 非负整数 */
SElemType e;
InitStack(&s); /* 初始化栈 */
printf("n(>=0)=");
scanf("%u",&n); /* 输入非负十进制整数n */
while(n) /* 当n不等于0 */
{
Push(&s,n%8); /* 入栈n除以8的余数(8进制的低位) */
n=n/8;
}
while(!StackEmpty(s)) /* 当栈不空 */
{
Pop(&s,&e); /* 弹出栈顶元素且赋值给e */
printf("%d",e); /* 输出e */
}
printf("/n");
}
对于输入的任意一个非负10进制整数,打印输出与其等值的16进制数
void conversion()
{ SqStack s;
unsigned n; /* 非负整数 */
SElemType e;
InitStack(&s); /* 初始化栈 */
printf("n(>=0)=");
scanf("%u",&n); /* 输入非负十进制整数n */
while(n) /* 当n不等于0 */
{
Push(&s,n%16); /* 入栈n除以16的余数(16进制的低位) */
n=n/16;
}
while(!StackEmpty(s)) /* 当栈不空 */
{
Pop(&s,&e); /* 弹出栈顶元素且赋值给e */
if(e<=9)
printf("%d",e);
else
printf("%c",e+55);
}
printf("/n");
}