Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 6
- int* even_odd(int* array, int sizeArray, int** aOdd, int* odd_size, int* even_size);
- void print_array(int* arr, int n);
- int main()
- {
- int array[N] = { 1,2,3,4,5,6 };
- int** aOdd, * aEven;
- int odd_size = 0, even_size = 0;
- aEven = even_odd(array, N, &aOdd, &odd_size, &even_size);
- if (aOdd == NULL || aEven == NULL) // check null
- {
- printf("allocation failed");
- return 1;
- }
- print_array(aEven, even_size);
- printf("\n");
- print_array(aOdd, odd_size);
- free(aOdd);
- free(aEven);
- return 0;
- }
- void print_array(int* arr, int n)
- {
- for (int i = 0; i < n; i++)
- {
- printf("%d ", arr[i]);
- }
- }
- int * even_odd( int * array, int sizeArray, int ** aOdd, int * odd_size, int * even_size )
- {
- int* aEven = NULL;
- int countOdd = 0, countEven = 0;
- int j = 0, z = 0;
- for (int i = 0; i < sizeArray; i++)
- {
- // First we seperate the array
- if (array[i] % 2 == 0)
- countEven++;
- }
- *aOdd = NULL; // Initialize *aOdd to NULL
- countOdd = sizeArray - countEven;
- *aOdd = (int*)malloc(countOdd * sizeof(int));
- aEven = (int*)malloc(countEven * sizeof(int));
- if (*aOdd == NULL || aEven == NULL)
- return NULL;
- for (int i = 0; i < sizeArray; i++)
- {
- if (array[i] % 2 == 0)
- aEven[j++] = array[i]; // add even to the new array
- else
- (*aOdd)[z++] = array[i]; // add odd to the new array
- }
- *odd_size = countOdd;
- *even_size = countEven;
- return aEven;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement