1. 程式人生 > >調整陣列使奇數全部都位於偶數前面

調整陣列使奇數全部都位於偶數前面

#include <stdio.h> #include <stdlib.h> int sort(int arr[], int size) { int* left = arr; //定義一個左指標指向陣列第一個元素 int* right = arr+size-1; //定義一個右指標指向陣列最後一個元素 while (left < right) { while ((*left % 2 != 0) && (left < right)) //判斷指標指向的元素是否為奇數,如果不是指向後一個元素 { left++; } while ((*right % 2 == 0) && (left < right)) //判斷右指標指向的元素是否為偶數,如果不是指向前一個元素 { right–; } if (left < right) //交換當前左右指標指向的元素,當前左指標指向一個偶數,右指標指向奇數 { int tmp = *left; *left = *right; *right = tmp; } ++left; –right; } } int main() { int arr[] = {1,3,2,66,8,9,814,7,46 }; int size = sizeof(arr) /sizeof(arr[0]); sort(arr, size); for (int i = 0; i < size; ++i) { printf("%d “, arr[i]); } printf(”\n"); system(“pause”); return 0; }