I need help with the following code, I do not know why when calculating the inverse matrix of a 3x3 matrix only throws zeros, the problem occurs when performing the operation corresponding to the inverse matrix; The code is as follows:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
int ma[3][3],mb[3][3],matriz[0][0],f,c,r[3][3],o,x,e,det,y,d1,d2,d3,r1,r2,r3,p00,p01,p02,p10,p11,p12,p20,p21,p22,Adj[3][3],Inv[3][3];
int main(){
printf("\n || primero de veras meter las dos matrices 3x3 ||");
printf("\n ingresa la matriz A ");
for(f=0;f<3;f++){
for(c=0;c<3;c++){
printf("\n dame el valor de la matriz A [%i][%i]: ",f,c);
scanf("%d",&ma[f][c]);
}//columnas
}// filas
printf("\n ingresa la matriz B ");
for(f=0;f<3;f++){
for(c=0;c<3;c++){
printf("\n dame el valor de la matriz b [%i][%i]: ",f,c);
scanf("%d",&mb[f][c]);
}//columnas
}// filas
do
{
printf("\nMatriz A : 1");
printf("\nMatriz B : 2");
printf("\nSalir : 0");
printf("\nDe que matriz deseas conocer la matriz inversa : ");
scanf("%i",&x);
if(x==1)
{
//Determinante
d1=ma[0][0]*ma[1][1]*ma[2][2];
d2=ma[1][0]*ma[2][1]*ma[0][2];
d3=ma[2][0]*ma[0][1]*ma[1][2];
r1=ma[2][0]*ma[1][1]*ma[0][2];
r2=ma[0][0]*ma[2][1]*ma[1][2];
r3=ma[1][0]*ma[0][1]*ma[2][2];
det=(d1+d2+d3)-(r1+r2+r3);
if(det==0)
{
printf("\nLa matriz no tiene matriz inversa\n");
}
else
{
//Calculo de la matriz adjunta
Adj[0][0]=(ma[1][1]*ma[2][2])-(ma[2][1]*ma[1][2]);//bien
Adj[0][1]=((ma[1][0]*ma[2][2])-(ma[2][0]*ma[1][2]))*(-1);//-24
Adj[0][2]=(ma[1][0]*ma[2][1])-(ma[2][0]*ma[1][1]);//-9
Adj[1][0]=((ma[0][1]*ma[2][2])-(ma[2][1]*ma[0][2]))*(-1);//16
Adj[1][1]=(ma[0][0]*ma[2][2])-(ma[2][0]*ma[0][2]);//12
Adj[1][2]=((ma[0][0]*ma[2][1])-(ma[2][0]*ma[0][1]))*(-1);//-12
Adj[2][0]=(ma[0][1]*ma[1][2])-(ma[1][1]*ma[0][2]);//-56
Adj[2][1]=((ma[0][0]*ma[1][2])-(ma[1][0]*ma[0][2]))*(-1);//24
Adj[2][2]=(ma[0][0]*ma[1][1])-(ma[1][0]*ma[0][1]);//bien
//calculo de la matriz adjunta
printf("\nMatriz adjunta:\n");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{
printf("%i",Adj[c][f]);
printf("\t");
}
printf("\n\n");
}
//calculo de la matriz inversa
printf("\nLa matriz inversa es: \n\n");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{
Inv[f][c]=(1/det)*Adj[c][f];
}
}
for(f=0;f<3;f++) // Filas
{
for(c=0;c<3;c++) // Columnas
{
printf("%.2f",Inv[c][f]);
printf("\t");
} // Columnas
printf("\n\n");
}
}
}
if(x==2)
{
//Determinante
d1=mb[0][0]*mb[1][1]*mb[2][2];
d2=mb[1][0]*mb[2][1]*mb[0][2];
d3=mb[2][0]*mb[0][1]*mb[1][2];
r1=mb[2][0]*mb[1][1]*mb[0][2];
r2=mb[0][0]*mb[2][1]*mb[1][2];
r3=mb[1][0]*mb[0][1]*mb[2][2];
det=(d1+d2+d3)-(r1+r2+r3);
if(det==0)
{
printf("\nLa matriz no tiene matriz inversa\n");
}
else
{
//calculo de la matriz adjunta
Adj[0][0]=(mb[1][1]*mb[2][2])-(mb[2][1]*mb[1][2]);//bien
Adj[0][1]=((mb[1][0]*mb[2][2])-(mb[2][0]*mb[1][2]))*(-1);//-24
Adj[0][2]=(mb[1][0]*mb[2][1])-(mb[2][0]*mb[1][1]);//-9
Adj[1][0]=((mb[0][1]*mb[2][2])-(mb[2][1]*mb[0][2]))*(-1);//16
Adj[1][1]=(mb[0][0]*mb[2][2])-(mb[2][0]*mb[0][2]);//12
Adj[1][2]=((mb[0][0]*mb[2][1])-(mb[2][0]*mb[0][1]))*(-1);//-12
Adj[2][0]=(mb[0][1]*mb[1][2])-(mb[1][1]*mb[0][2]);//-56
Adj[2][1]=((mb[0][0]*mb[1][2])-(mb[1][0]*mb[0][2]))*(-1);//24
Adj[2][2]=(mb[0][0]*mb[1][1])-(mb[1][0]*mb[0][1]);//bien
//calculo de la matriz adjunta
printf("\nMatriz adjunta:\n");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{
printf("%i",Adj[c][f]);
printf("\t");
}
printf("\n\n");
}
//calculo de la matriz inversa
printf("\nLa matriz inversa es: \n\n");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{
Inv[f][c]=(1/det)*Adj[c][f];
}
}
for(f=0;f<3;f++) // Filas
{
for(c=0;c<3;c++) // Columnas
{
printf("%.2f",Inv[c][f]);
printf("\t");
} // Columnas
printf("\n\n");
}
}
}
} while(x!=0);
}