# C Program to find transpose of a matrix

Transpose of a matrix is obtained by changing rows to columns and columns to rows. In other words, transpose of A[][] is obtained by changing A[i][j] to A[j][i]. For Square Matrix :

The below program finds transpose of A[][] and stores the result in B[][], we can change N for different dimension.

 `#include ` `#define N 4 ` ` `  `// This function stores transpose of A[][] in B[][] ` `void` `transpose(``int` `A[][N], ``int` `B[][N]) ` `{ ` `    ``int` `i, j; ` `    ``for` `(i = 0; i < N; i++) ` `        ``for` `(j = 0; j < N; j++) ` `            ``B[i][j] = A[j][i]; ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `A[N][N] = { {1, 1, 1, 1}, ` `                    ``{2, 2, 2, 2}, ` `                    ``{3, 3, 3, 3}, ` `                    ``{4, 4, 4, 4}}; ` ` `  `    ``int` `B[N][N], i, j; ` ` `  `    ``transpose(A, B); ` ` `  `    ``printf``(``"Result matrix is \n"``); ` `    ``for` `(i = 0; i < N; i++) ` `    ``{ ` `        ``for` `(j = 0; j < N; j++) ` `           ``printf``(``"%d "``, B[i][j]); ` `        ``printf``(``"\n"``); ` `    ``} ` ` `  `    ``return` `0; ` `} `

Output:

```Result matrix is
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
```

For Rectangular Matrix :

The below program finds transpose of A[][] and stores the result in B[][].

 `#include ` `#define M 3 ` `#define N 4 ` ` `  `// This function stores transpose of A[][] in B[][] ` `void` `transpose(``int` `A[][N], ``int` `B[][M]) ` `{ ` `    ``int` `i, j; ` `    ``for` `(i = 0; i < N; i++) ` `        ``for` `(j = 0; j < M; j++) ` `            ``B[i][j] = A[j][i]; ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `A[M][N] = { {1, 1, 1, 1}, ` `                    ``{2, 2, 2, 2}, ` `                    ``{3, 3, 3, 3}}; ` ` `  `    ``// Note dimensions of B[][] ` `    ``int` `B[N][M], i, j; ` ` `  `    ``transpose(A, B); ` ` `  `    ``printf``(``"Result matrix is \n"``); ` `    ``for` `(i = 0; i < N; i++) ` `    ``{ ` `        ``for` `(j = 0; j < M; j++) ` `        ``printf``(``"%d "``, B[i][j]); ` `        ``printf``(``"\n"``); ` `    ``} ` ` `  `    ``return` `0; ` `} `

Output:

```Result matrix is
1 2 3
1 2 3
1 2 3
1 2 3
```

In-Place for Square Matrix:

 `#include ` `using` `namespace` `std; ` ` `  `#define N 4 ` ` `  `// Converts A[][] to its transpose ` `void` `transpose(``int` `A[][N]) ` `{ ` `    ``for` `(``int` `i = 0; i < N; i++) ` `        ``for` `(``int` `j = i+1; j < N; j++) ` `            ``swap(A[i][j], A[j][i]); ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `A[N][N] = { {1, 1, 1, 1}, ` `                    ``{2, 2, 2, 2}, ` `                    ``{3, 3, 3, 3}, ` `                    ``{4, 4, 4, 4}}; ` ` `  `    ``transpose(A); ` ` `  `    ``printf``(``"Modified matrix is \n"``); ` `    ``for` `(``int` `i = 0; i < N; i++) ` `    ``{ ` `        ``for` `(``int` `j = 0; j < N; j++) ` `           ``printf``(``"%d "``, A[i][j]); ` `        ``printf``(``"\n"``); ` `    ``} ` ` `  `    ``return` `0; ` `} `

Output:

```Modified matrix is
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
```

Please refer complete article on Program to find transpose of a matrix for more details!

My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.