使一個數組中的全部奇數位於偶數之前
阿新 • • 發佈:2018-11-07
使一個數組中的所有奇數都位於偶數之前, 用變數left 來儲存陣列左邊的偶數, 用變數 right 來儲存陣列右邊的奇數, 建立一個迴圈, 迴圈的結束條件是left < right
在迴圈之中分別對 left 與 right 進行判斷, 如果 left 裡的元素為偶數, right 裡的元素為偶數, 則將 left 與 right 裡的元素進行調換. 如果不是則將 left ++, right –
具體程式碼如下
#include<stdio.h> #include<stdlib.h> int main(){ int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int len = sizeof(arr) / sizeof(arr[0]); 計//算陣列的長度 int left = 0; int right = len-1; for (int i = 0; i < 10; ++i){ printf("%d ", arr[i]); } printf("\n"); while (left < right){ while (left < right && arr[left] % 2 != 0){ //從左邊開始尋找第一個奇數 ++left; } while (left < right && arr[right] % 2 == 0 ){ //從右邊開始尋找第一個偶數 --right; } if (left < right){ //將找到的奇數和偶數進行交換 int tem = arr[left]; arr[left] = arr[right]; arr[right] = tem; } } printf("------------------------------------------\n"); for (int i = 0; i < 10; ++i){ printf("%d ", arr[i]); } printf("\n"); system("pause"); return 0; }