將陣列的奇數放到偶數前面

2022-09-08 08:45:10 字數 883 閱讀 1359

題目:輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分

思路:

宣告兩個指標,乙個指向該陣列的頭,另乙個指向該陣列的尾,將頭指標指向的第乙個偶數和尾指標指向的第乙個奇數交換即可,直到頭指標大於尾指標跳出迴圈。

**如下:

void tiaozheng(int *data,unsigned int

length)}}

上面的方法只能用於區分奇數和偶數,程式的通用性不高,例如如果需要將正數和負數分開則需要重新寫乙個函式,下面是乙個用於解決此類問題的通用模板,如果需要劃分正負數的話,將函式的引數func更改為判斷正負數的函式即可。(本例中傳入判斷奇偶數的方法isjishu)

**如下:

//

判斷是否是奇數的函式,奇數返回true,偶數返回false

bool isjishu(int

x)//

列印函式

void print(int *data,int

length)

cout

<

使用通用的模板解決此類問題

void tiaozheng2(int *data,unsigned int length,bool (*func)(int

)) }}

測試**及執行結果:

int

main()

; print(data,5);

tiaozheng2(data,

5,isjishu);

print(data,5);

return0;

}

10 奇數放到偶數前面

題目1 輸入乙個整數陣列,實現函式使得陣列奇數字於陣列前半部分,所有偶數字於陣列後邊部分。題目2 輸入乙個整數陣列,實現函式使得陣列奇數字於陣列前半部分,所有偶數字於陣列後邊部分。並保證原陣列的相對位置不變。題目1 1 利用兩個指標left,right。分別從左和從右尋找奇數偶數進行交換即可。如下 ...

把陣列中的奇數放到偶數之前

案例 陣列內容 3 4 4 6 8 2 1 1 1 調換奇偶 3 1 1 1 8 2 4 4 6 思路 源於快速排序 方式1 參考 include include using namespace std bool isodd int num bool changearray int a,int si...

把陣列中的奇數放到偶數之前

案例 陣列內容 3 4 4 6 8 2 1 1 1 調換奇偶 3 1 1 1 8 2 4 4 6 思路 源於快速排序 方式1 參考 include include using namespace std bool isodd int num bool changearray int a,int si...