# How to Split Array

Good afternoon!

I am struggling to split an Array (A) of Size e.g. 10 into two other Arrays (B and C). Array B should contain all even elements of A and C, apparently, all odd elements of A.

Example:

A = [5, 4, 7, 2, 9, 6, 8, 11, 25, 17} ->

B = [5, 7, 9, 8, 25]

C = [4, 2, 6, 11, 17]

Best!

Show your code attempt, otherwise we will not be able to offer advice on what you are doing wrong!

You can use this code :

``````int A[10] = {5, 4, 7, 2, 9, 6, 8, 11, 25, 17};
int B[5];
int C[5];
int indexB = 0;
int indexC = 0;
for ( int i = 0 ; i < 10 ; i++ )
{
if ( MathMod(i,2) == 0 )
{
Print( i, " B");
B[indexB] = A[i];
indexB++;
}
else
{
Print( i, " C");
C[indexC] = A[i];
indexC++;
}
}
``````

Thank you very much. It works very well.

Here’s an alternative method for using a simple dynamic array-list so you won’t have to mess with the array sizing, and you can also sort…

``````#include <Arrays\ArrayInt.mqh>
class SplitArray : public CArrayInt
{
public:
void AssignEven(const CArrayInt &arr)
{
Clear();
for(int i=0;i<arr.Total();i++)
if(arr[i]%2==0)
}
void AssignOdd(const CArrayInt &arr)
{
Clear();
for(int i=0;i<arr.Total();i++)
if(arr[i]%2!=0)
}
void ToLog()
{
for(int i=0;i<Total();i++)
Print(this[i]);
}
};

void OnStart()
{
SplitArray all,even,odd;
srand(_RandomSeed);
for(int i=0;i<50;i++)