1. 程式人生 > >編程題#2:奇偶排序(一)

編程題#2:奇偶排序(一)

ios -- cout 如果 cin art 數組 n) bool

描述

輸入十個整數,將十個整數按升序排列輸出,並且奇數在前,偶數在後。

輸入

輸入十個整數

輸出

按照奇偶排序好的十個整數

#include <iostream>
using namespace std;

int main() {
    int a[10];
    for (int i = 0; i < 10; i++) {
        cin >> a[i];
    }
    // 首先,我們把奇數放到數組左邊,偶數放到數組右邊
    int l = 0, r = 9; // 用左手和右手分別指向數組兩端
    while (l <= r) {
        
bool leftIsOdd = a[l] % 2 == 1; bool rightIsEven = a[r] % 2 == 0; if (leftIsOdd) { l++; } else if (rightIsEven) { r--; } else if (!leftIsOdd && !rightIsEven) { int temp = a[l]; a[l] = a[r]; a[r] = temp; } }
// 對l左邊(奇數部分)冒泡,不斷比較相鄰的兩個數,如果順序錯了,那麽就交換 int start = 0, end = l; for (int i = start; i < end - 1; i++) { for (int j = start + 1; j < start + end - i; j++) { if (a[j - 1] > a[j]) { int temp = a[j]; a[j] = a[j - 1]; a[j - 1
] = temp; } } } // 對l右邊(偶數部分)冒泡,不斷比較相鄰的兩個數,如果順序錯了,那麽就交換 start = l, end = 10; for (int i = start; i < end - 1; i++) { for (int j = start + 1; j < start + end - i; j++) { if (a[j - 1] > a[j]) { int temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } } for (int i = 0; i < 10; i++) { cout << a[i] << ; } return 0; }

編程題#2:奇偶排序(一)