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 Block Detector Powered by codehelppro.com

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