Write a C program to read elements in a matrix and check whether the given matrix is symmetric matrix or not. How to check symmetric matrix in C. Logic to check symmetric matrix in C programming.
Example
Input
Input matrix elements: 1 2 3 2 4 5 3 5 8
Output
Given matrix is symmetric matrix.
Required knowledge
Basic C programming, For loop, Array
Must know –
What is Symmetric Matrix?
Symmetric matrix is a square matrix which is equal to its transpose. A symmetric matrix is always a square matrix. Symmetric matrix A is defined as – A = AT
Logic to check symmetric matrix
To check whether a matrix A is symmetric or not we need to check whether A = AT or not. Below is the step by step descriptive logic to check symmetric matrix.
- Input elements in matrix A.
- Find transpose of matrix A, store it in some variable say B.
- Check if matrix A is equal to its transpose AT then it is symmetric matrix otherwise not. Means check if Aij = ATij (Where 1 ≤ i ≤ m and 1 ≤ j ≤ n) then the matrix is symmetric.
Program to check symmetric matrix
/**
* C program to check whether a matrix is symmetric matrix or not
*/
#include <stdio.h>
#define SIZE 3
int main()
{
int A[SIZE][SIZE]; // Original matrix
int B[SIZE][SIZE]; // Transpose matrix
int row, col, isSymmetric;
/* Input elements in matrix A from user */
printf("Enter elements in matrix of size 3x3: \n");
for(row=0; row<SIZE; row++)
{
for(col=0; col<SIZE; col++)
{
scanf("%d", &A[row][col]);
}
}
/*
* Find transpose of matrix A
*/
for(row=0; row<SIZE; row++)
{
for(col=0; col<SIZE; col++)
{
/* Store each row of matrix A to each column of matrix B */
B[row][col] = A[col][row];
}
}
/*
* Check whether matrix A is equal to its transpose or not
*/
isSymmetric = 1;
for(row=0; row<SIZE && isSymmetric; row++)
{
for(col=0; col<SIZE; col++)
{
/* If matrix A is not equal to its transpose */
if(A[row][col] != B[row][col])
{
isSymmetric = 0;
break;
}
}
}
/*
* If the given matrix is symmetric.
*/
if(isSymmetric == 1)
{
printf("\nThe given matrix is Symmetric matrix: \n");
for(row=0; row<SIZE; row++)
{
for(col=0; col<SIZE; col++)
{
printf("%d ", A[row][col]);
}
printf("\n");
}
}
else
{
printf("\nThe given matrix is not Symmetric matrix.");
}
return 0;
}
Output
Enter elements in matrix of size 3x3: 1 2 3 2 4 5 3 5 8 The given matrix is Symmetric matrix: 1 2 3 2 4 5 3 5 8
Happy coding 😉