C++编译程序,运用栈将十进制数转化为八进制数输入包含若干十进制正整数。 Output 输出相应的八进制数,每个占一行。
时间: 2024-09-27 10:02:44 浏览: 20
在C++中,我们可以创建一个简单的函数来实现这个功能。首先,我们通常会使用`std::stack`来模拟栈的数据结构,并利用循环遍历输入的十进制数字。以下是一个基本的步骤:
```cpp
#include <iostream>
#include <stack>
#include <string>
// 将一个十进制数转换为八进制字符串
std::string decimalToOctal(int decimal) {
std::stringstream ss;
ss << std::oct << decimal; // 使用std::oct前缀表示八进制输出
return ss.str();
}
// 主函数处理输入并打印八进制结果
void convertAndPrint() {
std::stack<int> decimalStack;
// 模拟用户输入
for (int i = 0; i < 5; i++) { // 这里假设有5个十进制数
int input;
std::cout << "请输入第" << (i+1) << "个十进制数: ";
std::cin >> input;
decimalStack.push(input);
}
while (!decimalStack.empty()) {
int decimal = decimalStack.top(); // 取出栈顶元素
std::cout << decimalToOctal(decimal) << "\n"; // 转换并打印
decimalStack.pop(); // 移除已处理的数字
}
}
int main() {
convertAndPrint();
return 0;
}
```
当你运行这个程序时,它会提示你输入一系列的十进制数,然后逐个将其转换成八进制并打印出来,每行一个。