anyone help my program isn't working. I need to find inverse of a matrix data in binary file should be used to form matrix.its not finding inverse correctly rest is working good.
Code:
#include <stdio.h>
void createbin();
void display();
void inverse();
int main()
{
createbin();
display();
inverse();
return 0;
}
void createbin()
{
int a[3][3],i,j;
int x;
FILE *fp = fopen ("file.bin", "wb");
printf("Enter 9 numbers: ");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
fwrite (&x, sizeof (x), 1, fp);
fclose(fp);
}
void display()
{
int a[3][3],i,j;
float determinant=0;
int x;
printf("\nThe matrix is\n");
FILE *fp = fopen("file.bin","rb");
while(1 == fread (&x, sizeof (x), 1, fp))
{
for(i=0;i<3;i++)
{
printf("\n");
for(j=0;j<3;j++)
printf("%d\t",a[i][j]);
}
}
fclose(fp);
}
void inverse()
{
int a[3][3],i,j,x;
float determinant=0;
FILE *fp = fopen("file.bin","rb");
printf("\nInverse of matrix is: \n\n");
while(1 == fread (&x, sizeof (x), 1, fp))
for(i=0;i<3;i++)
determinant = determinant + (a[0][i]*(a[1][(i+1)%3]*a[2][(i+2)%3] - a[1][(i+2)%3]*a[2][(i+1)%3]));
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%.2f\t",((a[(i+1)%3][(j+1)%3] * a[(i+2)%3][(j+2)%3]) - (a[(i+1)%3][(j+2)%3]*a[(i+2)%3][(j+1)%3]))/ determinant);
printf("\n");
}
}