You are on page 1of 4

#include<stdio.

h>
#include<conio.h>
main()
{
int n,i,j,m;
float a[100][100],id[100][100];
char z;
printf("\t\tMATRIX INVERSION USING GAUSS-JORDAN METHOD\n\n");
cont:
printf("Enter the order of the matrix A: ");
scanf("%d",&n);
printf("\nEnter the values of the matrix A: ");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
scanf("%f",&a[i][j]);
}
printf("\nThe matrix A is\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%0.2f\t",a[i][j]);
printf("\n");
}
for(i=1;i<=n;i++)

for(j=1;j<=n;j++)
{
if(i==j)
id[i][j]=1.000;
else
id[i][j]=0.000;
}
printf("\n");
for(m=1;m<=n;m++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==m)
{
a[i][j]=a[i][j]/a[m][m];
id[i][j]=id[i][j]/a[m][m];
}
else
{
a[i][j]=a[i][j]-((a[i][m]/a[m][m])*a[m][j]);
id[i][j]=id[i][j]-((a[i][m]/a[m][m])*id[m][j]);
}
//printf("\t%f",id[i][j]);

}
}
}
printf("\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%0.2f\t",id[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
{
if(a[i][i]==0)
{
printf("Inverse does not exist\n");
goto end;
}
}
end:
printf("\n\nDo you wish to continue: Y/N\t");
scanf("%s",&z);
if(z=='Y'||z=='y')
{
printf("\n\n***************\n\n");
goto cont;

}
else
printf("\n\t\t\t\t***END OF PROGRAM***");
getch();
}

You might also like