Before going to the program first let us understand what is Transpose of a Matrix?
Transpose of a matrix:
Transpose of a Matrix is a matrix that is obtained by interchanging the rows and columns of a matrix.
Transpose of a Matrix can also be obtained by reflecting the elements along its main diagonal. Repeating the process on the transposed matrix returns the elements to their original position.
For Example,
Let the matrix be
1 2 3
4 5 6
7 8 9
Then the Transpose of the above matrix is
1 4 7
2 5 8
3 6 9
Program Code to Transpose of a matrix in C:
#include <stdio.h> #include<conio.h> void main() { int a[10][10],b[10][10],i,j,r,c,tr,tc; clrscr(); printf("n Enter the number of rows and columns of matrix : "); scanf("%d%d",&r,&c); printf("n Enter the elements of matrix n"); for( i = 0 ; i < r ; i++ ) { for( j = 0 ; j < c ; j++ ) { scanf("%d",&a[i][j]); } } tr=c; tc=r; for( i = 0 ; i < tr ; i++ ) { for( j = 0 ; j < tc ; j++ ) { b[i][j] = a[j][i]; } } printf("n Transpose of matrix is nn"); for( i = 0 ; i < tr ; i++ ) { for( j = 0 ; j < tc ; j++ ) { printf(" %d ",b[i][j]); } printf("n"); } getch(); }
Working:
- First the computer reads the rows and columns of matrix from the user.
- Then using for loops the computer reads the matrix from the user.
- Then using for loops the transpose of a matrix is carried out.
- Finally using for loops the transposed matrix is printed.
Step by step working of the above program:
- Let us assume that a user enters the number of rows and columns as 3 and 3 respectively.
- And then enters the elements of matrix as given below
1 2 3
4 5 6
7 8 9
- tr=c (tr=3) , tc=r (tc=3)
- It assigns the value of i=0 and j=0 and the loop continues till condition of the for loop is true.
4.1. i<tr (0<3) for loop condition is true
4.1.1. j<tc (0<3) for loop condition is true
b[i][j]=a[j][i] (b[0][0]=a[o][o]) So b[0][0]=1
j++ (j=j+1) So j=1
4.1.2. j<tc (1<3) for loop condition is true
b[i][j]=a[j][i] (b[0][1]=a[1][o]) So b[0][1]=4
j++ (j=j+1) So j=2
4.1.3. j<tc (2<3) for loop condition is true
b[i][j]=a[j][i] (b[0][2]=a[2][o]) So b[0][2]=7
j++ (j=j+1) So j=3
4.1.4. j<tc (3<3) for loop condition is false
It comes out of the for loop and increment the value of i and reassigns the value of j.
i++ (i=i+1) So i=1 , j=0
4.2. i<tr (1<3) for loop condition is true
4.2.1. j<tc (0<3) for loop condition is true
b[i][j]=a[j][i] (b[1][0]=a[o][1]) So b[1][0]=2
j++ (j=j+1) So j=1
4.2.2. j<tc (1<3) for loop condition is true
b[i][j]=a[j][i] (b[1][1]=a[1][1]) So b[1][1]=5
j++ (j=j+1) So j=2
4.2.3. j<tc (2<3) for loop condition is true
b[i][j]=a[j][i] (b[1][2]=a[2][1]) So b[1][2]=8
j++ (j=j+1) So j=3
4.2.4. j<tc (3<3) for loop condition is false
It comes out of the for loop and increment the value of i and reassigns the value of j.
i++ (i=i+1) So i=2 , j=0
4.3. i<tr (2<3) for loop condition is true
4.3.1. j<tc (0<3) for loop condition is true
b[i][j]=a[j][i] (b[2][0]=a[o][2]) So b[2][0]=3
j++ (j=j+1) So j=1
4.3.2. j<tc (1<3) for loop condition is true
b[i][j]=a[j][i] (b[2][1]=a[1][2]) So b[2][1]=6
j++ (j=j+1) So j=2
4.3.3. j<tc (2<3) for loop condition is true
b[i][j]=a[j][i] (b[2][2]=a[2][2]) So b[2][2]=9
j++ (j=j+1) So j=3
4.3.4. j<tc (3<3) for loop condition is false
It comes out of the for loop and increment the value of i and reassigns the value of j.
i++ (i=i+1) So i=3 , j=0
4.4. i<tr (3<3) for loop condition is false
It comes out of the for loop.
- Finally using two for loops it prints the elements of the transpose matrix.
- Thus the program execution is completed.