#2855. [GESP202503 三级 C++] 第 12 题

[GESP202503 三级 C++] 第 12 题

以下代码的功能是将数组中的奇数和偶数分别放在数组的前半部分和后半部分,横线处应该填入的是( )

#include <iostream>
using namespace std;
int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int left = 0, right = 4;
    while (left < right) {
        while (arr[left] % 2 == 1 && left < right) left++;
        ————————————————————————————————————————————————————————
        if (left < right) {
            swap(arr[left], arr[right]);
        }
    }
    for (int i = 0; i < 5; i++) {
        cout << arr[i] << " ";
    }
    return 0;
}

{{ select(1) }}

  • while (arr[left] % 2 == 0 && left < right) right--;
  • while (arr[right] % 2 == 0 && left < right) left--;
  • while (arr[right] % 2 != 0 && left < right) right--;
  • while (arr[right] % 2 == 0 && left < right) right--;