Program to check square matrix is symmetric or not

0 June 5, 2021

In this example, We will learn a program to check square matrix is symmetric or not. Before that, You must have knowledge of the following topics.

Download Application: Learn C Programming with Live Compiler

Few important notes you must know:

  • A square matrix will be symmetric if transpose of that matrix will be equal to original matrix.
1    3    7
3    5    9
7    9    2

Above matrix is square matrix and symmetric matrix.

  • We can find transpose of the matrix by exchanging row and column indices.
  • We can find transpose only of the square matrix.

Algorithm

This is the algorithm of this program

Step 1: Start
Step 2: Declare variables c, d, a, b, n and temp
Step 3: Take input from user and store in n
Step 4: Assign c = 0
Step 5: REPEAT this step until c < n
        Assign d = 0
        REPEAT this step until d < n
                Take input from user and store in a[c][d]
                Increase d by 1
        Increase c by 1
Step 6: Assign c = 0
Step 7: REPEAT this step until c < n
        Assign d = 0
        REPEAT this step until d < n
                b[d][c] = a[c][d]
                Increase d by 1
        Increase c by 1
Step 8: Declare isSymmetric = 0 and Assign c = 0
Step 9: REPEAT this step until c < n
        Assign d = 0
        IF isSymmetric == 0
                REPEAT this step until d < n
                        IF a[c][d] != b[c][d]
                                isSymmetric = 1
                                break;
                        Increase d by 1
        Increase c by 1
Step 10: IF isSymmetric == 0
                Print \"Matrix is symmetric\"
        ELSE
                Print \"Matrix is not symmetric\"
Step 11: End
        

Flowchart

This is the flowchart of this program

Flowchart : Program to check square matrix is symmetric or not

CODE: Check Square Matrix is symmetric or not

Now, We will see the code to sort array elements using for loop.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int c, d, a[10][10], b[10][10], n, temp;
    printf("\nEnter the dimension of the matrix: \n\n");
    scanf("%d", &n);

    printf("\nEnter the %d elements of the matrix: \n\n", n * n);
    for (c = 0; c < n; c++) 
        for (d = 0; d < n; d++)
            scanf("%d", &a[c][d]);

    // finding transpose of a matrix and storing it in b[][]
    for (c = 0; c < n; c++)
        for (d = 0; d < n; d++)
            b[d][c] = a[c][d];

    // printing the original matrix
    printf("\n\nThe original matrix is: \n\n");
    for (c = 0; c < n; c++)
    {
        for (d = 0; d < n; d++)
        {
            printf("%d\t", a[c][d]);
        }
        printf("\n");
    }

    // printing the transpose of the entered matrix
    printf("\n\nThe Transpose matrix is: \n\n");
    for (c = 0; c < n; c++)
    {
        for (d = 0; d < n; d++)
        {
            printf("%d\t", b[c][d]);
        }
        printf("\n");
    }

    // checking if the original matrix is same as its transpose
    for (c = 0; c < n; c++)
    {
        for (d = 0; d < n; d++)
        {
            /* 
                if they differ by a single element, 
                the matrix is not symmetric
            */
            if (a[c][d] != b[c][d])
            {
                printf("\n\nMatrix is not Symmetric\n\n");
                exit(0);
            }
        }
    }
    
    printf("\n\nMatrix is Symmetric\n\n");

    return 0;
}

The output of above program is


Enter the dimension of the matrix: 

2

Enter the 4 elements of the matrix: 

1
2
3
4


The original matrix is:

1       2
3       4
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Join Our Newsletter Now

Get the latest tutorials, examples and projects updates.

!

Ads

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Disable Ad Block

Want Same System