
输入一个整数数组实现一个函数来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分所有偶数位于数组的后半部分。比如输入{1,2,3,4,5}输出{1,5,3,4,2}代码如下#include stdio.hvoid my_swap(int* ptr, int sz){int left 0;int right sz - 1;while (left right){while (left right ptr[left] % 2 1)left;while (left right ptr[right] % 2 0)right--;//上述两个while循环值得深思//首先外面的while循环是为了让双指针在合适的范围内移动//其次中间的while循环是为了使指针切切实实满足//左指针遇到奇数继续前进遇到偶数就需要交换了//右指针遇到偶数继续后退遇到奇数就需要交换了//需要当它们两个都停止的时候才会交换没有停止就循环走if (left right){int tmp ptr[left];ptr[left] ptr[right];ptr[right] tmp;}}}int main(){int arr[] { 1,2,3,4,5 };int sz sizeof(arr) / sizeof(arr[0]);my_swap(arr, sz);for (int i 0; i sz; i)printf(%d , arr[i]);}