C Program To Find the Transpose of a Matrix
The transpose of a matrix is obtained by changing the rows to column and column to rows. Consider there is an M*N matrix, where M stands for the number of rows and N stands for the number of columns. Now, the new transpose matrix obtained will be of form N*M where N stands for the number of rows and M stands for the number of columns.
But before moving forward, if you are not familiar with the concept of array then, do check the article on Arrays in C.
This problem can be solved in the following ways:
Method 1: Without using Functions
Method 2: Using Functions
Let us look at each of the methods separately.
Program 1: Find Transpose of a Matrix
In this method, firstly we will declare two 2D arrays. The first 2D array will contain the original matrix and the second 2d array will contain the new transpose matrix. Here, we will directly transpose the elements of the original matrix to the new matrix.
Algorithm:
- Start
- Declare an array.
- Initialize the array.
- Declare a transpose matrix.
- Store the elements in the transpose matrix.
- Now, print the elements in the transpose matrix.
- Stop
Below is the code for the same.
In the below program, we will directly find the transpose of the matrix.
#include <stdio.h>
int main()
{
int m,n; //Matrix Size Declaration
printf("Enter the number of rows and column: \n");
scanf("%d %d",&m,&n); //Matrix Size Initialization
int arr[10][10]; //Matrix Size Declaration
printf("\nEnter the elements of the matrix: \n");
for(int i=0;i<m;i++) //Matrix Initialization
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
printf("\nThe elements in the matrix are: \n");
for(int i=0;i<m;i++) //Print the matrix
{
for(int j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
int brr[10][10]; //Transpose Matrix Declaration
for(int i=0;i<m;i++) //Transpose Matrix initialization
{
for(int j=0;j<n;j++)
{
brr[j][i]=arr[i][j]; //Store elements in the transpose matrix
}
}
printf("\nAfter transpose the elements are...\n");
for(int i=0;i<m;i++) //Print the transpose matrix
{
for(int j=0;j<n;j++)
{
printf("%d ",brr[i][j]);
}
printf("\n");
}
return 0;
}
Enter the number of rows and column: 3 3
Enter the elements of the matrix: 1 4 3 5 6 7 2 9 8
The elements in the matrix are:
1 4 3
5 6 7
2 9 8
After transpose the elements are...
1 5 2
4 6 9
3 7 8
Program 2: Find the Transpose of a Matrix
In this method, firstly we will declare two 2D array. The first 2D array will contain the original matrix and the second 2d array will contain the new transpose matrix. Here, we will call a function that will transpose the elements of the original matrix to the new matrix.
Algorithm:
- Start
- Declare an array.
- Initialize the array.
- Declare a transpose matrix.
- Call a function that will perform the transpose operation.
- Store the elements in the transpose matrix.
- Now, print the elements in the transpose matrix.
- Stop
Below is the code for the same.
In the below program, we will call a function to find the transpose of the matrix.
#include <stdio.h>
void transpose(int arr[10][10], int m, int n, int brr[10][10]) //Function Definition
{
for(int i=0;i<m;i++) //Transpose Matrix initialization
{
for(int j=0;j<n;j++)
{
brr[j][i]=arr[i][j]; //Store elements in the transpose matrix
}
}
printf("\nAfter transpose the elements are...\n");
for(int i=0;i<m;i++) //Print the transpose matrix
{
for(int j=0;j<n;j++)
{
printf("%d ",brr[i][j]);
}
printf("\n");
}
}
int main()
{
int m,n; //Matrix Size Declaration
printf("Enter the number of rows and column: \n");
scanf("%d %d",&m,&n); //Matrix Size Initialization
int arr[10][10]; //Matrix Size Declaration
printf("\nEnter the elements of the matrix: \n");
for(int i=0;i<m;i++) //Matrix Initialization
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
printf("\nThe elements in the matrix are: \n");
for(int i=0;i<m;i++) //Print the matrix
{
for(int j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
int brr[10][10]; //Transpose Matrix Declaration
transpose(arr,m,n,brr); //Function Call
return 0;
}
Enter the number of rows and column: 3 3
Enter the elements of the matrix: 1 4 9 7 8 5 2 9 8
The elements in the matrix are:
1 4 9
7 8 5
2 9 8
After transpose the elements are...
1 7 2
4 8 9
9 5 8