# C++ Transpose Matrix

Created By: Debasis Das (14-Feb-2016)

In this post we will transpose a matrix in C++

Sample Code is as follows

```//  main.cpp
//  MatrixTranspose
//  Created by Debasis Das on 14/02/16.

#include <iostream>
using namespace std;

int main(int argc, const char * argv[]) {
int a = {
{0, 1, 2, 3} ,
{4, 5, 6, 7} ,
{8, 9, 10, 11}
};

cout <<"size of the entire array = "<< sizeof(a) << endl;
cout <<"Size of the first row = "<< sizeof(a) << endl;
cout <<"size of the first element of the first row = " << sizeof(a)<< endl;

int numOfRows = sizeof(a)/sizeof(a);
int numOfcolumns = sizeof(a)/sizeof(a);

cout <<"Number of Rows = "<< numOfRows<< endl;
cout <<"Number of Colums = "<< numOfcolumns<< endl ;

int i,j;

cout << endl << "Matrix Before transpose: " << endl;
for(i=0; i<numOfRows; ++i)
for(j=0; j<numOfcolumns; ++j)
{
cout << " " << a[i][j];
if(j==numOfcolumns-1)
cout << endl << endl;
}

cout<<"We need to create an transpose array with Rows = " <<numOfcolumns << " & Number of Columns = " << numOfRows <<endl;

int transposedMatrix[numOfcolumns][numOfRows];

for(i=0; i<numOfRows; ++i)
for(j=0; j<numOfcolumns; ++j)
{
transposedMatrix[j][i]=a[i][j];
}

//Displaying the transpose
cout << endl << "Transpose of Matrix: " << endl;
for(i=0; i<numOfcolumns; ++i)
for(j=0; j<numOfRows; ++j)
{
cout << " " << transposedMatrix[i][j];
if(j==numOfRows-1)
cout << endl << endl;
}
return 0;
}

```

Output of Sample Code

```size of the entire array = 48
Size of the first row = 16
size of the first element of the first row = 4
Number of Rows = 3
Number of Colums = 4

Matrix Before transpose:
0 1 2 3

4 5 6 7

8 9 10 11

We need to create an transpose array with Rows = 4 & Number of Columns = 3

Transpose of Matrix:
0 4 8

1 5 9

2 6 10

3 7 11

Program ended with exit code: 0
```
Posted in C++