酷代码 AI
菜单
服务商

题目描述 现有 n n 个正整数,乌拉乎希望把这些数进行分类, 按照原本的顺序,先依次输出这些数中所有的奇数,再依次输出所有的偶数。 输入格式 两行,一个正整数 n n, 第二行依次为 n n 个正整数,数与数之间以一个空格间隔。 输出格式 共两行, 第一行依次输出所有的奇数,数与数之间以一个空格间隔, 第二行依次输出所有的偶数,数与数之间以一个空格间隔。 用C++解答

以下是解决该问题的C++代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 读取正整数n cin >> n; int numbers[1000]; // 用于存储奇数 int oddNumbers[1000]; // 用于存储偶数 int evenNumbers[1000]; // 奇数的数量 int oddCount = 0; // 偶数的数量 int evenCount = 0; // 读取n个正整数 for (int i = 0; i < n; i++) { cin >> numbers[i]; // 判断该数是否为奇数 if (numbers[i] % 2 != 0) { // 如果是奇数,存储到oddNumbers数组中 oddNumbers[oddCount] = numbers[i]; oddCount++; } else { // 如果是偶数,存储到evenNumbers数组中 evenNumbers[evenCount] = numbers[i]; evenCount++; } } // 输出所有奇数 for (int i = 0; i < oddCount; i++) { if (i > 0) { cout << " "; } cout << oddNumbers[i]; } cout << endl; // 输出所有偶数 for (int i = 0; i < evenCount; i++) { if (i > 0) { cout << " "; } cout << evenNumbers[i]; } cout << endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 数组的大小要足够大,避免出现数组越界的问题。这里假设输入的正整数数量不超过1000,如果输入数量可能很大,需要考虑动态数组或者使用`vector`。 2. 在输出奇数和偶数时,要注意数与数之间的空格处理,避免多余的空格输出。 3. 注意输入的合法性,虽然本题假设输入都是合法的正整数,但在实际开发中,可能需要对输入进行合法性检查。 [2025-10-26 19:55:07 | AI写代码神器 | 512点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多