用两个指针记录头和尾,然后判断奇数,偶数。
void divideOddEven(int *arr, int n)
{
int *pHead = arr;
int *pTail = (arr + n - 1);
while (pHead<pTail)
{
if (*pHead % 2 == 1)
pHead++;
else if (*pHead % 2 != 1 && *pTail % 2 == 0)
pTail--;
else
{
swap(*pHead, *pTail);
pHead++;
}
}
}
结果如下:

追问能给一个完整的c语言程序吗
能给一个完整的c语言程序吗
追答这个就能够使用了,剩下输入输出,就看你到底选择什么方式了。
int main()
{
int n;
cin >> n;
int *arr = new int[n];
for (int i = 0; i < n; i++)
cin>>arr[i];
cout << endl;
divideOddEven(arr, n);
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
追问c++???