7-2 数据结构考题 十进制转换为八进制 分数 8 作者 王群芳 单位 合肥师范学院 利用栈(以顺序栈作存储结构)实现进制转换。给定一个十进制非负整数,编程将该数以八进制形式输出。用c++写
时间: 2024-11-10 10:26:35 浏览: 55
在C++中,你可以通过模拟计算过程并将每个位的值压入栈来实现十进制转八进制的过程。这里是一个简单的示例代码,使用了`std::stack`数据结构:
```cpp
#include <iostream>
#include <string>
#include <stack>
using namespace std;
// 将一位二进制数转换成对应的八进制数
int decimalToOctal(int digit) {
return (digit * 8 + 7);
}
void decToOctal(int num) {
stack<int> octStack;
while (num > 0) {
int remainder = num % 8; // 取余数得到当前位的八进制值
octStack.push(remainder); // 压入栈中
num /= 10; // 移除最低位
}
// 从栈顶开始依次输出八进制数字
while (!octStack.empty()) {
cout << octStack.top();
octStack.pop();
}
}
int main() {
int decimalNum;
cout << "请输入一个十进制非负整数:";
cin >> decimalNum;
cout << "其八进制形式为:";
decToOctal(decimalNum);
cout << endl;
return 0;
}
```
这个程序首先读取用户输入的十进制数,然后不断地取余并压入栈,直到十进制数变成0。最后,它会从栈顶开始逐个弹出元素(即八进制数),逆序输出。
阅读全文