Courses

### Courses

Structure and Union

No Examples found for this topic - CodeHelpPro

Data Files

No Examples found for this topic - CodeHelpPro

# 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.

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

## 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
Inline Feedbacks

Get the latest tutorials, examples and projects updates.

!