# 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.