调整数组使奇数全部都位于偶数前面。
输入一个整数数组,实现一个函数,
调整该数组中数字得数组中所有奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
int swap(int a[], int sz)
{
int t = 0, left = 0, right = sz - 1;
while (left < right)
{
while (left < right && a[left] % 2 == 1)//从左到右查偶数
left++;
while (left < right && a[right] % 2 == 0)//从右到左查奇数
right--;
if (left < right)//左边的偶数与右边的奇数交换
{
t = a[left];
a[left] = a[right];
a[right] = t;
}
}
printf("\n");
for (int i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
int main()
{
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0; i < 10; i++)
printf("%d ", a[i]);
swap(a, 10);
return 0;
}