C PROGRAMS

Program to check whether given Square Matrix is symmetric or not

Few important points to remember:

• A Square Matrix is said to be symmetric if it is equal to it's transpose.
• Transpose of a matrix is achieved by exchanging indices of rows and columns.
• Transpose is only defined for a square matrix.

Below is a program to check whether sqaure matrix is symmetric or not.

``````#include<stdio.h>

int main()
{
printf("\n\n\t\tStudytonight - Best place to learn\n\n\n");

int c, d, a, b, 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++) // to iterate the rows
for(d = 0; d < n; d++) // to iterate the columns
scanf("%d", &a[c][d]);

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

// printing the original matrix
printf("\n\nThe original matrix is: \n\n");
for(c = 0; c < n; c++)   // to iterate the rows
{
for(d = 0; d < n; d++)   // to iterate the columns
{
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++) // to iterate the rows
{
for(d = 0; d < n; d++)   // to iterate the columns
{
printf("%d\t", b[c][d]);
}
printf("\n");
}

// checking if the original matrix is same as its transpose
for(c = 0; c < n; c++)   // to iterate the rows
{
for(d = 0; d < n; d++)   // to iterate the columns
{
/*
even 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);    // a system defined method to terminate the program
}
}
}

/*
if the program is not terminated yet,
it means the matrix is symmetric
*/
printf("\n\nMatrix is Symmetric\n\n");
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}``````

Output: 