- 主题
- 2
- 帖子
- 80
- 精华
- 0
- 积分
- 103
- C币
- 87 枚
- 在线时间
- 16 小时
- 注册时间
- 2009-10-29
- 最后登录
- 2011-9-22
- 性别
- 男
- 居住地
- 广东省 广州市

- 主题
- 2
- 帖子
- 80
- C币
- 87 枚
- 在线时间
- 16 小时
|
还有利用栈实现,以下是算法核心的转换函数,适用于转换成任意进制,其中栈的ADT就省略了
void conversion()
{ // 对于输入的任意一个非负十进制整数,打印输出与其等值的N进制数
SqStack s;
unsigned n; // 非负整数
int e;
InitStack(s); // 初始化栈
printf("将十进制整数n转换为%d进制数,请输入:n(≥0)=",N);
scanf("%u",&n); // 输入非负十进制整数n
while(n) // 当n不等于0
{ Push(s,n%N); // 入栈n除以N的余数(N进制的低位)
n=n/N;
}
while(!StackEmpty(s)) // 当栈不空
{ Pop(s,e); // 弹出栈顶元素且赋值给e
printf("%d",e); // 输出e
}
printf("\n");
}
void main()
{
conversion();
} |
|