1. 程式人生 > >寫一函數,調整數組使奇數全部都位於偶數前面

寫一函數,調整數組使奇數全部都位於偶數前面

for stdio.h while pan class clu temp div can

調整數組使奇數全部都位於偶數前面。
輸入一個整數數組,實現一個函數,
來調整該數組中數字的順序使得數組中所有的奇數位於數組的前半部分,
所有偶數位於數組的後半部分。

 1 #include<stdio.h>
 2 
 3 #define NUM 10
 4 
 5 void Change_num(int* start, int* end)
 6 {
 7     //開頭找偶數,結尾找奇數,找到後兩個相互交換位置
 8     //1,2,3,4,5,6,7,8,9,5
 9     //1, 3, 5, 4, 5, 6, 7, 8, 9, 2
10     while (start < end)
11 { 12 if ((*start) % 2 == 0 ) 13 { 14 if ((*end) % 2 != 0) 15 { 16 int temp = 0; 17 temp = *start; 18 *start = *end; 19 *end = temp; 20 } 21 else 22 { 23 --end;
24 } 25 } 26 else 27 { 28 ++start; 29 } 30 } 31 } 32 33 int main() 34 { 35 int arr[NUM]; 36 printf("請輸入未改變順序前的10個數:\n"); 37 for (int i = 0;i < NUM;++i) 38 { 39 scanf("%d", &arr[i]); 40 } 41 printf("\n");
42 //改變奇數與偶數的順序 43 int* start = arr; 44 int* end = arr + sizeof(arr) / sizeof(arr[0]) - 1; 45 printf("改變順序之後:\n"); 46 Change_num(start, end); 47 for (int i = 0;i < NUM;++i) 48 { 49 printf("%d ", arr[i]); 50 } 51 return 0; 52 }

寫一函數,調整數組使奇數全部都位於偶數前面