Find the transpose of a matrix in place of 3×3 matrix in C++

In this C++ program, we are going to find the transpose of a given matrix in place with simple array commands and nested loop. This problem is based on the application of array which has many applications. Following is a short and easy solution to perform this task and complete source code is also available.

How to find the transpose of a given matrix in C++

Problem statement

There is a matrix of size 3×3 ( 2D array). Find the transpose of that matrix.

Definition

The transpose of a matrix is defined as a matrix formed my interchanging all rows with their corresponding column and vice versa of previous matrix.

Consider the following example-

transpose of a matrix in C++




Problem approach

  • Initialize a 2D array to work as matrix.
  • Store values in it.
  • Find transpose by using logic.
  • Print output on screen.

Program/Source code

Following is the program code to find trace and normal of a matrix. It is written and successfully compiled in CodeBlocks v 16.01 in windows 10.

/* C++ program to transpose of a given matrix**
 ** enter matrix values of your choice**
 ***enter different values for different results***
 note: No other matrix is declared and same matrix is transposed
       Enter the array(matrix) values within array limit only....
 */

#include <iostream>

using namespace std;

int main()
{
    int matrix[3][3]={{43,23,55},{65,76,32},{33,51,22}};            //array declaration and values
                                                                    // change array values here
    int temp;

    cout<<"Given matrix is-"<<endl;

    for(int i=0;i<3;i++){                                            // print given matrix
        for(int j=0;j<3;j++)
            cout<<matrix[i][j]<<"\t";
        cout<<endl;
    }

    cout<<endl;

    for(int i=0;i<3;i++){                                            // transpose
        for(int j=i;j<3;j++){                                           //NESTED loop
            temp=matrix[i][j];                                  //swap variables
            matrix[i][j]=matrix[j][i];
            matrix[j][i]=temp;
        }
    }

    cout<<"Transpose of given matrix is-"<<endl;
    
    for(int i=0;i<3;i++){                                       //print transpose of matrix
        for(int j=0;j<3;j++)
            cout<<matrix[i][j]<<"\t";
        cout<<endl;
    }
    return 0;
}

Output

Given matrix is-
43 23 55
65 76 32
33 51 22

Transpose of given matrix is-
43 65 33
23 76 51
55 32 22

Process returned 0 (0x0) execution time : 4.607 s
Press any key to continue.

Program explanation

  1. Initialize an integer array (2D) variable “marix“.
  2. Store value in it.
  3. Print the initial values using nested for loop.
  4. Transpose of that matrix in calculated by using following logic
    for(int i=0;i<3;i++){                                            // transpose
            for(int j=i;j<3;j++){                                           //NESTED loop
                temp=matrix[i][j];                                  //swap variables
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=temp;
            }
    }

    All the corresponding rows and columns are interchanged using nested for loop.

  5. Print the matrix using the same logic as in point no.3

Also, read


Leave a Reply

Your email address will not be published. Required fields are marked *