输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
#include<stdio.h>
#include<stdlib.h>
void arr_move(int arr[], int sz)
{
int *left = arr;
int *right = arr + sz - 1;
while (left < right)
{
while ((*left%2== 1) && (left < right))
{
left++;
}
while ((*right%2 == 0) && (left < right))
{
right--;
}
if (left < right)
{
int tmp = *left;
*left = *right;
*right = tmp;
}
}
left++;
right--;
}
int main()
{
int i = 0;
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int sz = (sizeof(arr) / sizeof(arr[0]));
arr_move(arr, sz);
for (i = 0; i < sz; i++)
{
printf("%d\n", arr[i]);
}
system("pause");
return 0;
}
结果如下: