#include <stdio.h>
#define MAX 200
// Print the content of the array Arr to the screen in one line
void printarr (int Arr[], int len) {
for (int idx=0; idx < len; idx++) printf( "%d ", Arr[idx] );
printf("\n"); // Print newline
}
// Merge the two arrays into one array.
int merge(int Arr1[], int len1, int Arr2[], int len2, int MergeArr[]) {
int MergeLen = len1+len2;
int i,j,k; i = j = k = 0;
for (; i < len1 && j < len2 ; k++) {
if (Arr1[i] < Arr2[j]) MergeArr[k] = Arr1[i++];
else MergeArr[k] = Arr2[j++];
}
for (; i < len1; MergeArr[k ++] = Arr1[i ++]);
for (; j < len2; MergeArr[k ++] = Arr2[j ++]);
return MergeLen;
} // Of merge
void main () {
int Arr1[] = { 1,35, 10,31,52,22, 76,89,100};
int Arr2[] = { 2,8, 43, 15,21,19, 32};
int Arr1Len = sizeof(Arr1)/sizeof(int), Arr2Len=sizeof(Arr2)/sizeof(int), MergeArrLen ;
int MergeArr[MAX];
printarr(Arr1, Arr1Len); // Print the content of the first array
printarr(Arr2, Arr2Len); // Print the content of the second array
MergeArrLen = merge(Arr1, Arr1Len, Arr2, Arr2Len, MergeArr); // Merge the two arrays into a new one
printarr(MergeArr, MergeArrLen); // Print the sort array.
}