matrix problem

anyone an write the code to find inverse of matrix

Not here to do your homework for you, sorry. :)

Have a go at it and post your code if you have problems.
#include<stdio.h>
#include<math.h>
#include<conio.h>
float determinant( float []
[], float );
void cofactor( float []
[], float );
void transpose( float[]
[], float [][], float );
int main()
{
float a[25][25],k,d;
int i,j;
printf
("-------------------------------------------------------------
\n" );
printf ("----------------
made by C code champ
------------------------
\n" );
printf
("-------------------------------------------------------------
\n" );
printf ("\n C Program to
find inverse of Matrix\n
\n" );
printf ("Enter the order
of the Matrix : ");
scanf ( "%f" ,&k);
printf ("Enter the
elements of %.0fX%.0f
Matrix : \n" ,k,k);
for (i=0;i<k;i++)
{
for (j=0;j<k;j++)
{
scanf ("%f" ,&a[i]
[j]);
}
}
d=determinant(a,k);
printf ("Determinant of
the Matrix = %f" ,d);
if (d==0)
printf( "\nInverse of
Entered Matrix is not
possible\n" );
else
cofactor(a,k);
printf( "\n\n**** Thanks
for using the program!!!
****");
getch();
}
/*For calculating
Determinant of the Matrix
*/
float determinant( float a
[25][25], float k)
{
float s=1,det=0,b[25]
[25];
int i,j,m,n,c;
if (k==1)
{
return (a[0][0]);
}
else
{
det=0;
for (c=0;c<k;c++)
{
m=0;
n=0;
for (i=0;i<k;i++)
{
for (j=0;j<k;j
++)
{
b[i][j]=0;
if (i != 0
&& j != c)
{
b[m]
[n]=a[i][j];
if (n<
(k-2))
n++;
else
{
n=0;
m++;
}
}
}
}
det=det + s * (a
[0][c] * determinant
(b,k-1));
s=-1 * s;
}
}
return (det);
}
void cofactor( float num[25]
[25], float f)
{
float b[25][25],fac[25]
[25];
int p,q,m,n,i,j;
for (q=0;q<f;q++)
{
for (p=0;p<f;p++)
{
m=0;
n=0;
for (i=0;i<f;i++)
{
for (j=0;j<f;j++)
{
if (i != q &&
j != p)
{
b[m][n]=num[i]
[j];
if (n<(f-2))
n++;
else
{
n=0;
m++;
}
}
}
}
fac[q][p]= pow(-1,q +
p) * determinant(b,f-1);
}
}
transpose(num,fac,f);
}
/*Finding transpose of
matrix*/
void transpose( float num
[25][25], float fac[25]
[25], float r)
{
int i,j;
float b[25][25],inverse
[25][25],d;
for (i=0;i<r;i++)
{
for (j=0;j<r;j++)
{
b[i][j]=fac[j]
[i];
}
}
d=determinant(num,r);
for (i=0;i<r;i++)
{
for (j=0;j<r;j++)
{
inverse[i][j]=b[i]
[j] / d;
}
}
printf( "\n\n\nThe
inverse of matrix is :
\n" );
for (i=0;i<r;i++)
{
for (j=0;j<r;j++)
{
printf( "\t
%f" ,inverse[i][j]);
}
printf( "\n" );
}
}
this coding shows 42 errors :-(
Topic archived. No new replies allowed.