c++两栈共享输入一段数字,分别两个栈输出奇数和偶数
时间: 2024-11-06 07:23:42 浏览: 11
在C++中,你可以创建两个栈,一个用于存储奇数,另一个用于存储偶数。当从输入流读取数字时,你可以根据数字的奇偶性决定放入哪个栈。以下是这种方法的一个简单实现:
```cpp
#include <iostream>
#include <stack>
#include <vector>
// 判断数字是否为奇数
bool isOdd(int num) {
return num % 2 != 0;
}
int main() {
std::stack<int> oddStack;
std::stack<int> evenStack;
std::vector<int> inputNumbers;
// 输入数字
int number;
std::cin >> number;
while (number != -1) {
inputNumbers.push_back(number);
if (isOdd(number)) {
oddStack.push(number); // 奇数入oddStack
} else {
evenStack.push(number); // 偶数入evenStack
}
std::cin >> number;
}
// 输出奇数
std::cout << "奇数:\n";
while (!oddStack.empty()) {
std::cout << oddStack.top() << " ";
oddStack.pop();
}
// 输出偶数
std::cout << "\n偶数:\n";
while (!evenStack.empty()) {
std::cout << evenStack.top() << " ";
evenStack.pop();
}
return 0;
}
```
这段代码首先读取用户输入的整数序列,如果遇到 `-1`,则停止输入。然后对每个输入的数字判断其奇偶性,奇数入`oddStack`,偶数入`evenStack`。最后,依次弹出并打印两个栈中的元素。
阅读全文