In this article, we will show you how to write a C Program to Merge Two Arrays with an example?. To work with this Program to Merge Two Arrays example, you need a knowledge on for loop, w while loop, and functions..
C Program to Merge Two Arrays Example
This program to merge two allows the user to enter the Array size and elements of two different arrays. Next, it will merge two arrays one after the other using For Loop.
#include<stdio.h> int main() { int aSize, bSize, mSize, i, j; int a[10], b[10], Merged[20]; printf("\n Please Enter the First Array Size : "); scanf("%d", &aSize); printf("\nPlease Enter the First Array Elements : "); for(i = 0; i < aSize; i++) { scanf("%d", &a[i]); } printf("\n Please Enter the Second Array Size : "); scanf("%d", &bSize); printf("\nPlease Enter the Second Array Elements : "); for(i = 0; i < bSize; i++) { scanf("%d", &b[i]); } for(i = 0; i < aSize; i++) { Merged[i] = a[i]; } mSize = aSize + bSize; for(i = 0, j = aSize; j < mSize && i < bSize; i++, j++) { Merged[j] = b[i]; } printf("\n a[%d] Array Elements After Merging \n", mSize); for(i = 0; i < mSize; i++) { printf(" %d \t ",Merged[i]); } return 0; }
In this example, the below For loop will help to iterate every cell present in a[3] array. Condition inside the for loops (i < Size) will ensure the compiler not to exceed the array limit. Please refer to Array in C article to understand the concept of Array size, index position, etc.
Inside the C Programming for loop, we are assigning each and every arr array element to the Merged array. It means, Merged[0] = arr[0], Merged[1] = arr[1], Merged[2] = arr[2], Merged[3] = arr[3], Merged[4] = arr[4]
for(i = 0; i < aSize; i++) { Merged[i] = a[i]; }
Now merged[3] = {10, 20, 30}
In the next line, We have one more for loop to insert the second array elements into the Merged array
for(i = 0, j = aSize; j < mSize && i < bSize; i++, j++) { Merged[j] = b[i]; }
From the above Program to Merge Two Arrays in C screenshot, you can observe that the Second array elements are b[4] = {15, 25, 35, 45}
First Iteration: for(i = 0, j = aSize; j < mSize && i < bSize; i++, j++)
for (i = 0, j = 3; 3 < 7 && 0 < 4; 0++, 3++)
The condition (3 < 7 && 0 < 4) is True.
Merged[j] = b[i]
Merged[3] = b[0]
Merged[3] = 15
Second Iteration: for (i = 1, j = 4; 4 < 7 && 1 < 4; 1++, 4++)
The condition (4 < 7 && 1 < 4) is True.
Merged[j] = b[i]
Merged[4] = b[1]
Merged[4] = 25
Third Iteration: for (i = 2, j = 5; 5 < 7 && 2 < 4; 2++, 5++)
The condition (5 < 7 && 2 < 4) is True.
Merged[j] = b[i]
Merged[5] = b[2]
Merged[5] = 35
Fourth Iteration: for (i = 3, j = 6; 6 < 7 && 3 < 4; 3++, 6++)
The condition (6 < 7 && 3 < 4) is True.
Merged[j] = b[i]
Merged[6] = b[3]
Merged[6] = 45
Fifth Iteration: for (i = 4, j = 7; 7 < 7 && 4 < 4; 4++, 7++)
The condition (7 < 7 && 4 < 4) is False. So, it will exit from the For Loop
Next, we used one more for loop to print the output. I suggest you refer to the Print Array Elements article to understand this for loop.
C Program to Merge Two Arrays Example 2
This merge two arrays program will merge two arrays. While Merging, it will check which number is the least value and then insert the least number first
#include<stdio.h> int main() { int aSize, bSize, mSize, i, j, k; int a[10], b[10], Merged[20]; printf("\n Please Enter the First Array Size : "); scanf("%d", &aSize); printf("\nPlease Enter the First Array Elements : "); for(i = 0; i < aSize; i++) { scanf("%d", &a[i]); } printf("\n Please Enter the Second Array Size : "); scanf("%d", &bSize); printf("\nPlease Enter the Second Array Elements : "); for(i = 0; i < bSize; i++) { scanf("%d", &b[i]); } mSize = aSize + bSize; i = 0; j = 0; for(k = 0; k < mSize; k++) { if(i >= aSize || j >= bSize) { break; } if(a[i] < b[j]) { Merged[k] = a[i]; i++; } else { Merged[k] = b[j]; j++; } } while(i < aSize) { Merged[k] = a[i]; k++; i++; } while(j < bSize) { Merged[k] = b[j]; k++; j++; } printf("\n a[%d] Array Elements After Merging \n", mSize); for(i = 0; i < mSize; i++) { printf(" %d \t ",Merged[i]); } return 0; }
Merge Two Arrays output
Please Enter the First Array Size : 5
Please Enter the First Array Elements : 10 20 30 40 50
Please Enter the Second Array Size : 6
Please Enter the Second Array Elements : 5 7 15 35 95 17
a[11] Array Elements After Merging
5 7 10 15 20 30 35 40 50 95 17
Program to Merge Two Arrays Example 3
This program to merge two arrays is the same as above, but we used the Functions concept to arrange the code.
#include<stdio.h> void Merge_Array(int a[], int aSize, int b[], int bSize, int Merged[]); int main() { int aSize, bSize, mSize, i, j, k; int a[10], b[10], Merged[20]; printf("\n Please Enter the First Array Size : "); scanf("%d", &aSize); printf("\nPlease Enter the First Array Elements : "); for(i = 0; i < aSize; i++) { scanf("%d", &a[i]); } printf("\n Please Enter the Second Array Size : "); scanf("%d", &bSize); printf("\nPlease Enter the Second Array Elements : "); for(i = 0; i < bSize; i++) { scanf("%d", &b[i]); } Merge_Array(a, aSize, b, bSize, Merged); mSize = aSize + bSize; printf("\n a[%d] Array Elements After Merging \n", mSize); for(i = 0; i < mSize; i++) { printf(" %d \t ",Merged[i]); } return 0; } void Merge_Array(int a[], int aSize, int b[], int bSize, int Merged[]) { int i, j, k, mSize; j = k = 0; mSize = aSize + bSize; for(i = 0; i < mSize;) { if(j < aSize && k < bSize) { if(a[j] < b[k]) { Merged[i] = a[j]; j++; } else { Merged[i] = b[k]; k++; } i++; } else if(j == aSize) { while(i < mSize) { Merged[i] = b[k]; k++; i++; } } else { while(i < mSize) { Merged[i] = a[j]; j++; i++; } } } }
Please Enter the First Array Size : 5
Please Enter the First Array Elements : 10 20 30 40 50
Please Enter the Second Array Size : 8
Please Enter the Second Array Elements : 25 9 35 45 85 89 75 125
a[13] Array Elements After Merging
10 20 25 9 30 35 40 45 50 85 89 75 125