(c语言)输入一个整形数组,实现一个函数来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位与数组的后半部分

#include
//输入一个整形数组,实现一个函数来调整该数组中数字的顺序
//使得数组中所有的奇数位于数组的前半部分,所有偶数位与数组的后半部分

void TiaoWeiZhi(int* arr,int len)
{
    int* left = arr;
    int* right = arr+len - 1;
    while (left < right)
    {
        if (*left % 2 == 1)     //左侧若为奇数则跳过判断下一个
        {
            left++;
        }
        if (*right % 2 == 0)  //右侧若为偶数则跳过判断下一个
        {
            right--;
        }
        if (left < right)
        {
            int t = *left;
            *left = *right;
            *right = t;
        }
    }
}
int main()
{
    //创建数组
    int arr[10];
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        scanf("%d",&arr[i]);
    }
    //调整位置
    TiaoWeiZhi(arr,10);
    //输出
    for (i = 0; i < 10; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

你可能感兴趣的:(算法,数据结构)