C语言实现将一个数组中的奇数和偶数分开放在一起

在一个数组中的元素大多奇数和偶数是混在一起的,而将数组中元素奇数和偶数分开存放则是我们要解决的问题。

将奇数和偶数分开存放然后打印出来的思路是先创建两个空间,将奇数和偶数分别存放起来,然后再将他们又存进原数组,最后将数组元素循环打印就完成了奇数和偶数的分别存放。

C语言实现将一个数组中的奇数和偶数分开放在一起

#include<stdio.h>
int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    int i = 0;
    int j = 0;
    int k = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);
    int arr2[10] = { 0 };
    int arr3[10] = { 0 };
    while (i < sz)
    {
        if (arr[i] % 2 == 1)
        {
            arr2[j] = arr[i];
            j++;
            i++;
        }
        else
        {
            arr3[k] = arr[i];
            k++;
            i++;
        }
    }
    i = 0;
    j --;
    k --;
    while (j != -1)
    {
        arr[i] = arr2[j];
        j--;
        i++;
    }
    while (k != -1)
    {
        arr[i] = arr3[k];
        i++;
        k--;
    }
    for (i = 0; i < sz; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

运行如下:

C语言实现将一个数组中的奇数和偶数分开放在一起

相关推荐