題目:輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分
思路:
宣告兩個指標,乙個指向該陣列的頭,另乙個指向該陣列的尾,將頭指標指向的第乙個偶數和尾指標指向的第乙個奇數交換即可,直到頭指標大於尾指標跳出迴圈。
**如下:
void tiaozheng(int *data,unsigned int上面的方法只能用於區分奇數和偶數,程式的通用性不高,例如如果需要將正數和負數分開則需要重新寫乙個函式,下面是乙個用於解決此類問題的通用模板,如果需要劃分正負數的話,將函式的引數func更改為判斷正負數的函式即可。(本例中傳入判斷奇偶數的方法isjishu)length)}}
**如下:
//測試**及執行結果:判斷是否是奇數的函式,奇數返回true,偶數返回false
bool isjishu(int
x)//
列印函式
void print(int *data,int
length)
cout
<
使用通用的模板解決此類問題
void tiaozheng2(int *data,unsigned int length,bool (*func)(int
)) }}
intmain()
; 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...