rendered paste body#include<stdio.h>
#define M 2
#define N 3
typedef float MATRIX[N][N];
typedef float SUBMATRIX[M][M];
float determinante3(MATRIX matriz);
float subdeterminante(SUBMATRIX matriz);
main()
{
MATRIX matriz={{2,0,6},{0,2,5},{4,0,3}};
MATRIX adjunta, inversa;
SUBMATRIX a, b, c, d, e, f, g, h, i;
//Determinante
float determinante, invdet;
int t,u;
determinante=determinante3(matriz);
printf("Determinante:%.2f ", determinante);
printf("\n");
invdet=1/determinante;
printf("Inv.Determinante:%.2f ", invdet);
printf("\n");
//Submatrices
a[0][0]= matriz[1][1];a[0][1]=matriz[1][2];a[1][0]=matriz[2][1];a[1][1]= matriz[2][2];
b[0][0]= matriz[1][0];b[0][1]=matriz[1][2];b[1][0]=matriz[2][0];b[1][1]=matriz[2][2];
c[0][0]= matriz[1][0];c[0][1]=matriz[1][1];c[1][0]=matriz[2][0];c[1][1]=matriz[2][1];
d[0][0]= matriz[0][1];d[0][1]=matriz[0][2];d[1][0]=matriz[2][1];d[1][1]=matriz[2][2];
e[0][0]= matriz[0][0];e[0][1]=matriz[0][2];e[1][0]=matriz[2][0];e[1][1]=matriz[2][2];
f[0][0]= matriz[0][0];f[0][1]=matriz[0][1];f[1][0]=matriz[2][0];f[1][1]=matriz[2][1];
g[0][0]= matriz[0][1];g[0][1]=matriz[0][2];g[1][0]=matriz[1][1];g[1][1]=matriz[1][2];
h[0][0]= matriz[0][0];h[0][1]=matriz[0][2];h[1][0]=matriz[1][0];h[1][1]=matriz[1][2];
i[0][0]= matriz[0][0];i[0][1]=matriz[0][1];i[1][0]=matriz[1][0];i[1][1]=matriz[1][1];
//matriz adjunta
adjunta[0][0]=subdeterminante(a);
adjunta[0][1]=-1*subdeterminante(b);
adjunta[0][2]=subdeterminante(c);
adjunta[1][0]=-1*subdeterminante(d);
adjunta[1][1]=subdeterminante(e);
adjunta[1][2]=-1*subdeterminante(f);
adjunta[2][0]=subdeterminante(g);
adjunta[2][1]=-1*subdeterminante(h);
adjunta[2][2]=subdeterminante(i);
for(t=0;t<3;t++)
{
for(u=0;u<3;u++)
{
printf("%.2f ", adjunta[t][u]);
}
}
getchar();
}
float determinante3(MATRIX matriz)
{
float determinante;
determinante = matriz[0][0]*matriz[1][1]*matriz[2][2];
determinante += matriz[0][1]*matriz[1][2]*matriz[2][0];
determinante += matriz[1][0]*matriz[2][1]*matriz[0][2];
determinante -= matriz[0][2]*matriz[1][1]*matriz[2][0];
determinante -= matriz[0][1]*matriz[1][0]*matriz[2][2];
determinante -= matriz[0][0]*matriz[2][1]*matriz[1][2];
return determinante;
}
float subdeterminante(SUBMATRIX matriz)
{
float determinante;
determinante = matriz[0][0]*matriz[1][1];
determinante -= matriz[0][1]*matriz[1][0];
return determinante;
}