目录
题目要求
创建一个整型数组
自定义函数实现:调整该数组中数字的顺序,使得数组中所有的奇数位于数组的前半部分,数组中所有的偶数位于数组的后半部分
举例:
输入的整型数组为:[234,24,45,23,5,8,233,123,456,2,78,3456]
调整数组的顺序后:[123 233 45 23 5 8 24 234 456 2 78 3456]
代码实现
#include<stdio.h>
SwapArr(int arr[], int size)
{
int left = 0;
int right = size - 1;
// 左下标找偶数,右下标找奇数
// 找到就交换,没找到就各自递增/减,直到左右下标相遇结束
while (left < right)
{
if (arr[left] % 2 == 0)
{
if (arr[right] % 2 == 1)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
}
else
{
right--;
}
}
else
{
left++;
}
}
}
int main()
{
// 创建
int arr[] = { 234,24,45,23,5,8,233,123,456,2,78,3456 };
// 数组左右下标
int size = sizeof(arr) / sizeof(arr[0]);
//交换
SwapArr(arr, size);
//输出
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
代码验证: