Home » C programs » C One Dimensional Array programs

C program to merge two arrays in third array which is creating dynamically



In this C program, we are merging two one dimensional array in third array, where size of first and second arrays are different and the size of third array will be size of first array + second array.
Submitted by IncludeHelp, on April 14, 2018

Given two dimensional array and we have to merge them in a single array using C program.

Example:

First array elements: 10, 20 ,30
Second array elements: 40, 50, 60

Output:
Third array: 10, 20, 30, 40, 50, 60

Program to merge two arrays in C

/** C program to merge two arrays into a new
 * array
*/

#include <stdio.h>
#include <stdlib.h>
int main()
{
    // declare two int arrays
    int array_1[30] = {0};
    int array_2[30] = {0};
    
    // declare an int pointer which
    // will store the combination of 
    // array_1 and array_2
    int *c;
    
    // declare some local variables
    int i=0 , j=0 , k=0;

    // x will store the number of elements for array_1
    // y will store the number of elements for array_2
    // z will store the total number of elements of array_2 array_1
    int x=0 , y=0 , z=0;

    printf("\nEnter the number of elements for both arrays..");
    printf("\nFor array_1 : ");
    scanf("%d",&x);
    printf("\nFor array_2 : ");
    scanf("%d",&y);
 
    printf("\nEnter the elements for array_1..\n");
    for(i=0 ; i<x ; i++)
    {
        printf("array_1[%d] : ",i);
        scanf("%d",&array_1[i]);
    }
    
    printf("\nEnter the elements for array_2..\n");
    for(i=0 ; i<x ; i++)
    {
        printf("array_2[%d] : ",i);
        scanf("%d",&array_2[i]);
    }
    
    // Calculate the total elements for pointer "c"
    z = x +y;
    
    printf("\nTotal elements are : %d\n",z);
    
    // now allocate dynamic memory to pointer "c"
    // but according to the "z"
    c = (int*)malloc(z * sizeof(int));
    
    for(i=0,j=0,k=0 ; i<z,j<x,k<y ; i++)
    {
        c[i] = array_1[j++];
        if(i>=x)
        {
            c[i] = array_2[k++];
        }
    }
    
    printf("\nThe final array after merging the two arrays is..");
    for(i=0;i<z;i++)
    {
        printf("\nC[%d] : %d",i,c[i]);
    }
    
    return 0;
}


Output

Enter the number of elements for both arrays..   
For array_1 : 3  
 
For array_2 : 3  
 
Enter the elements for array_1.. 
array_1[0] : 10  
array_1[1] : 20  
array_1[2] : 30  
 
Enter the elements for array_2.. 
array_2[0] : 40  
array_2[1] : 50  
array_2[2] : 60  
 
Total elements are : 6
   
The final array after merging the two arrays is..
C[0] : 10
C[1] : 20
C[2] : 30
C[3] : 40
C[4] : 50
C[5] : 60





Was this page helpful? Please share with your friends...

Are you a blogger? Join our Blogging forum.




Comments and Discussions





Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing » Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com (2015-2018), Some rights reserved.




close Like other websites, this site uses cookies to deliver relevant ads based on your interest, by using our website, you acknowledge that you have read our privacy policy.