(1)输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 (2)考虑设计一个模式解决同类问题。
void swap(int &a, int &b) { int c = a; a = b; b = c; } bool iseven(int integer) { return integer % 2; } void movearray(int iarray[], int start,int end,int length ,bool (*func)(int)) { if (start<0 || end>(length + start) || length < 0) return; while (start < end) { while (start < end && func(iarray[start])) start++; while (start < end && !func(iarray[end])) end--; if (start < end) swap(iarray[start], iarray[end]); } } int main() { int test[10] = { 1, 18, 6, 24, 23, 10, 17, 8, 19 ,25}; movearray(test, 0, 9, 10, iseven); for (int i = 0; i < 10; i++) cout <<test[i]<<"\t" ; }