首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C中将数组拆分为两个数组,一个用于偶数组,一个用于奇数组

在C语言中,可以通过遍历数组的每个元素,将偶数和奇数分别存放到两个不同的数组中。以下是一个示例代码:

代码语言:txt
复制
#include <stdio.h>

void splitArray(int arr[], int size, int evenArr[], int oddArr[]) {
    int evenIndex = 0;
    int oddIndex = 0;

    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            evenArr[evenIndex++] = arr[i];
        } else {
            oddArr[oddIndex++] = arr[i];
        }
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int size = sizeof(arr) / sizeof(arr[0]);
    int evenArr[size];
    int oddArr[size];

    splitArray(arr, size, evenArr, oddArr);

    printf("Even Array: ");
    for (int i = 0; i < size; i++) {
        if (evenArr[i] != 0) {
            printf("%d ", evenArr[i]);
        }
    }

    printf("\nOdd Array: ");
    for (int i = 0; i < size; i++) {
        if (oddArr[i] != 0) {
            printf("%d ", oddArr[i]);
        }
    }

    return 0;
}

这段代码中,我们定义了一个splitArray函数,该函数接受一个整数数组arr、数组大小size,以及两个用于存放偶数和奇数的数组evenArroddArr。在函数内部,我们使用两个索引evenIndexoddIndex来追踪偶数和奇数数组的下一个可用位置。遍历输入数组arr,如果当前元素是偶数,则将其存放到evenArr中,并递增evenIndex;如果当前元素是奇数,则将其存放到oddArr中,并递增oddIndex

main函数中,我们定义了一个示例数组arr,并计算数组大小。然后,我们创建了两个与输入数组大小相同的空数组evenArroddArr。接下来,调用splitArray函数将arr拆分为偶数数组和奇数数组。最后,我们分别打印出偶数数组和奇数数组的内容。

这个算法的时间复杂度是O(n),其中n是输入数组的大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券