题目:输入一个数组,实现一个函数,使所有的奇数位于数组的前部分,所有偶数位于数组的后半部分

#include <stdio.h>
void resize(int* arr,int sz)
{
    //1.第一种写法:
    int i = 0;
    int* start = arr;
    int* right = arr + sz-1;
    int tmp = 0;
    for (i = 0; i < sz-1; i++)
    {
        //if ((*arr) == 1)
        //{
        //    arr++;
        //}
        //奇数
        if (((*arr) % 2 == 1) || ((*arr) == 1))
        {
            arr++;
        }
        //偶数
        while (((*arr) % 2 == 0) && (start<right))
        {
            if (((*arr) % 2 == 0) && (start<right))
            {
                tmp = *arr;
                *arr = *right;
                *right = tmp;
            }
            start++;
            right--;
        }
    }

    //2.第二种写法:
    //int left = 0;
    //int right = sz - 1;
    //while (left<right)
    //{
    //    //奇数
    //    while ((arr[left] % 2 == 1) && (left<right))
    //    {
    //        arr++;
    //    }
    //    //偶数
    //    while ((arr[right] % 2 == 0) && (left<right))
    //    {
    //        right--;
    //    }
    //    int tmp = arr[left];
    //    arr[left] = arr[right];
    //    arr[right] = tmp;
    //}

}
int main()
{
    //int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    //int arr[] = { 3, 2, 12, 4, 57, 67, 88, 55 };
    int arr[] = { 1,3,5,7,9,13,15,17,19};
    int sz = sizeof(arr) / sizeof(arr[0]);
    resize(arr,sz);

    return 0;
}