In the article Merging
One Dimensional Arrays, we discussed how to merge one-dimensional
arrays, in this article we will be discussing about the merging of two-dimensional
arrays. Merging as you know is the process of combining two similar things.
In the context of arrays, it means to form a big array from two smaller arrays
which has all the elements from both the arrays.
In case of one-dimensional arrays there is only one way in which two arrays
can be merged but in case of two-dimensional arrays there are two ways.
Suppose, we have the following two 2d arrays (matrices):
mat1={
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}
and
mat2={
{10, 11, 12},
{13, 14, 15},
{16, 17, 18}
}
then they can be merged in the following two ways:
merge_row={
{1, 2, 3, 10, 11, 12},
{4, 5, 6, 13, 14, 15},
{7, 8, 9, 16, 17, 18}
}
merge_col={
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12},
{13, 14, 15},
{16, 17, 18}
}
Now that you know the funda, we move on to the example program to illustrate
this:
// example program to illustrate
// merging of two-dimensional or
// 2d arrays(matrices)
#include<iostream.h>
#define ROW1 3
#define ROW2 3
#define COL1 3
#define COL2 3
void main(void)
{
int i,j;
int matrix1[ROW1][COL1];
int matrix2[ROW2][COL2];
// these will store merged
// matrices
int merge_row[ROW1][COL1+COL2];
int merge_col[ROW1+ROW2][COL1];
// input the elements
cout<<"Input elements for MATRIX 1:\n";
for(i=0;i<ROW1;i++)
{
cout<<"ROW "<<i+1<<":\n";
for(j=0;j<COL1;j++)
cin>>matrix1[i][j];
}
cout<<"\nInput elements for MATRIX 2:\n";
for(i=0;i<ROW2;i++)
{
cout<<"ROW "<<i+1<<":";
for(j=0;j<COL2;j++)
cin>>matrix2[i][j];
}
//input complete
// merge matrices
// row merge starts
for(i=0;i<ROW1;i++)
for(j=0;j<COL1;j++)
merge_row[i][j]=matrix1[i][j];
for(i=0;i<ROW2;i++)
for(j=0;j<COL2;j++)
merge_row[i][j+COL2]=matrix2[i][j];
// row merge complete
// column merge starts
for(i=0;i<ROW1;i++)
for(j=0;j<COL1;j++)
merge_col[i][j]=matrix1[i][j];
for(i=0;i<ROW2;i++)
for(j=0;j<COL2;j++)
merge_col[i+ROW1][j]=matrix2[i][j];
// column merge complete
// show the merged martices
cout<<"\nROW Merge:\n\n";
for(i=0;i<ROW1;i++)
{
for(j=0;j<COL1+COL2;j++)
cout<<" "<<merge_row[i][j];
cout<<endl;
}
cout<<"\nCOLUMN Merge:\n\n";
for(i=0;i<ROW1+ROW2;i++)
{
for(j=0;j<COL1;j++)
cout<<" "<<merge_col[i][j];
cout<<endl;
}
}
Good-Bye!
Related Articles: