# Converting 2 dimemsional array to 3 dimensional array and vice versa in c++

Discussion in 'C++' started by bashamsc, Mar 14, 2008.

1. ### bashamscNew Member

Joined:
May 22, 2007
Messages:
51
Likes Received:
7
Trophy Points:
0
Location:
chennai

### Introduction

This article discusses about the Two Dimensional To Three Dimensional conversion and vice versa in c++

The following program converts two dimensional array to three dimensional array using TwoDimToThree() and converts three dimensional array to two dimensional array ussing ThreeDimToTwo() .

Code:
```#include<iostream>

using namespace std;

void TwoDimToThree();

void ThreeDimToTwo();

main()
{

cout<<"If u want to convert 2d array to 3d array enter 1 "<<endl;

cout<<endl<<"If u want to convert 3d array to 2d array enter 2 "<<endl;

int n;

cin>>n;

if(n==1)
TwoDimToThree();

else
ThreeDimToTwo();

}
void TwoDimToThree()
{

cout<<"Enter the no. of rows and column for 2d array "<<endl;

int Row,Col;

cin>>Row>>Col;

cout<<"Enter "<<Row*Col<<" elements for the 2d array"<<endl;

int i,j,k,a[Row][Col],b[Row][Row][Col];

for(i=0;i<Row;i++)
for(j=0;j<Col;j++)
cin>>a[i][j];

cout<<"The elements of 2d array are "<<endl;
for(i=0;i<Row;i++)
for(j=0;j<Col;j++)
cout<<"a["<<i<<"]["<<j<<"] = "<<a[i][j]<<endl;

cout<<"The elements of 3d array are "<<endl;
for(i=0;i<Row;i++)
{
for(j=0;j<Row;j++)
for(j=0;j<Row;j++)
{
for(k=0;k<Col;k++)
{
b[i][j][k]=a[j][k];
cout<<"b["<<i<<"]["<<j<<"]["<<k<<"] = "<<b[i][j][k]<<endl;
}
}
}

}

void ThreeDimToTwo()
{

cout<<"Enter the no. of rows , column , length of 3d array "<<endl;

int Row,Col,Len;

cin>>Row>>Col>>Len;

cout<<"Enter "<<(Row*Col)*Len<<" elements"<<endl;

int a[Row][Col][Len],b[Row][Row*Col];

int i,j,k;
for(i=0;i<Row;i++)
for(j=0;j<Col;j++)
for(k=0;k<Len;k++)
cin>>a[i][j][k];

int l=0,m=0,p;

cout<<"Elements of the three dimensional array are "<<endl;
for(i=0;i<Row;i++)
{
for(j=0;j<Col;j++)
{
for(k=0;k<Len;k++)
{
b[l][m]=a[i][j][k];
cout<<"a["<<i<<"]["<<j<<"]["<<k<<"] = "<<a[i][j][k]<<endl;
m++;
p=m;
}
}
m=0,l++;
}

cout<<endl<<"Elements of two dimensional array are "<<endl;

for(i=0;i<l;i++)
{
for(j=0;j<p;j++)
cout<<"b["<<i<<"]["<<j<<"] = "<<b[i][j]<<endl;
}

}
```

2. ### shabbirAdministratorStaff Member

Joined:
Jul 12, 2004
Messages:
15,326
Likes Received:
377
Trophy Points:
83
3. ### shabbirAdministratorStaff Member

Joined:
Jul 12, 2004
Messages:
15,326
Likes Received:
377
Trophy Points:
83