Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,911 questions

51,843 answers

573 users

How to arrange even first and odd after in array with C

1 Answer

0 votes
#include <stdio.h>

void swap(int* x, int* y) {
    int tmp = *x;
    *x = *y;
    *y = tmp;
}

void ArrangeEvenOdd(int arr[], int size) {
    int left = 0, right = size - 1;

    while (left < right) {
        if (arr[left] % 2) { // odd
            while ((arr[right] % 2 == 1) && right > left)
                right--;
            swap(&arr[left++], &arr[right--]);
        }
        else { // even
            left++;
        }
    }
}

int main() {
    int arr[] = { 3, 4, 8, 2, 9, 4, 5, 6 };

    int size = sizeof(arr) / sizeof(arr[0]);

    ArrangeEvenOdd(arr, size);

    for (int i = 0; i < size; i++)
        printf("%d ", arr[i]);

    return 0;
}




/*
run:

6 4 8 2 4 9 5 3

*/

 



answered Aug 28, 2022 by avibootz

Related questions

2 answers 109 views
1 answer 91 views
1 answer 98 views
1 answer 120 views
1 answer 85 views
...