Ask your own question, for FREE!
Computer Science 15 Online
OpenStudy (anonymous):

how can i rearrange an array so all the even numbers will have indices less than those for the odd numbers. This is in C. I have code for the rest of the program

OpenStudy (anonymous):

does order matters?

OpenStudy (anonymous):

no order does not matter

OpenStudy (anonymous):

void rearrange(int a[]) {int i, b[SIZE]; for(i=0;i<SIZE;i++) {if(a[i]%2) {THEN ITS ODD}

OpenStudy (anonymous):

thats what i have so far

OpenStudy (anonymous):

you can create new array and check old array if it's even and put those numbers there :D and later put odd numbers

OpenStudy (anonymous):

I am not sure if i know how to do that but i can try. if(a[i]%2) {b[i] = a[i];} //store odd values into new array else{} //I am not sure what to do with it if its even then. make another array?

OpenStudy (anonymous):

no you need to index from 0, not to same position

OpenStudy (anonymous):

and then increment when you add number http://pastebin.com/F8HT8rmT

OpenStudy (anonymous):

oh!!! okay that makes sense now. thanks for the help thomas, i appreciate it

OpenStudy (anonymous):

i think it's bad solution but it works :D

OpenStudy (anonymous):

ha I am sure there are other ways to do it but hey it works for me!

OpenStudy (rsmith6559):

You could sort the numbers by their modulus value: qsort( number % 2 ); Something like that.

OpenStudy (anonymous):

Actually this problem is very easy. Declare another integer array with same length, and then copy even numbers first, then append remaining numbers (thee odd ones) in last of the second array. The code snippet to do this is shown below: int[] arrange(int a[], size) { int *b = new int[size]; int index = 0; // variable to track position in second array // copy even numbers first for (int i = 0; i < size; ++i) { if (a[i]%2 == 0) { b[index] = a[i]; ++b; } } // copy all odd numbers for (int i = 0; i < size; ++i) { if (a[i]%2 != 0) { b[index] = a[i]; ++b; } } // now return new array return b; } Hope this will help you. Happy programming.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!