调整数组使奇数全部位于偶数前面

来源:互联网 发布:sqlserver怎么用 编辑:程序博客网 时间:2024/06/04 17:42
void move_num(int arr[], int sz){    int left = 0;    int right = sz - 1;    while (left < right)    {        while ((left<right) && (arr[left] % 2 != 0))//是奇数            left++;        while ((left<right) && (arr[right] % 2 != 1))//是偶数            right--;        if (left < right)        {            int tmp = 0;            tmp = arr[left];            arr[left] = arr[right];            arr[right] = tmp;            left++;            right--;        }    }}int main(){    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };    int sz = sizeof(arr) / sizeof(arr[0]);    int i = 0;    move_num(arr, sz);    for (i = 0; i < sz; i++)    {        printf("%d ", arr[i]);    }    system("pause");    return 0;}

运行结果如下:
这里写图片描述