You are on page 1of 3

#include <iostream.

h>

int main()
{
float A[3][3];// the matrix that is entered by user
float B[3][3];//the transpose of a matrix A
float C[3][3];//the adjunct matrix of transpose of a matrix A not adjunct of
A
double X[3][3];//the inverse
int i,j;
float x,n=0;//n is the determinant of A

cout<<"========== Enter matrix A


=============================================\n";
for(i=0;i<3;i++)
{ cout<<endl;
for(j=0;j<3;j++)
{
cout<<" A["<<i<<"]["<<j<<"]= ";
cin>>A[i][j];
B[i][j]=0;
C[i][j]=0;
}
}

for(i=0,j=0;j<3;j++)
{
if(j==2)
n+=A[i][j]*A[i+1][0]*A[i+2][1];
else if(j==1)
n+=A[i][j]*A[i+1][j+1]*A[i+2][0];
else
n+=A[i][j]*A[i+1][j+1]*A[i+2][j+2];
}
for(i=2,j=0;j<3;j++)
{
if(j==2)
n-=A[i][j]*A[i-1][0]*A[i-2][1];
else if(j==1)
n-=A[i][j]*A[i-1][j+1]*A[i-2][0];
else
n-=A[i][j]*A[i-1][j+1]*A[i-2][j+2];
}

cout<<"\n========== The matrix A is


==========================================\n";
for(i=0;i<3;i++)
{
cout<<endl;
for(j=0;j<3;j++)
{
cout<<" A["<<i<<"]["<<j<<"]= "<<A[i][j];
}
}
cout<<endl<<endl;
cout<<"=====================================================================\
n"<<endl;
cout<<"The determinant of matrix A is "<<n<<endl<<endl;
cout<<"====================================================================="
<<endl;

if(n!=0) x=1.0/n;
else
{
cout<<"Division by 0, not good!\n";
cout<<"=================================================================
====\n"<<endl;
return 0;
}
cout<<"\n========== The transpose of a matrix A
==============================\n";
for(i=0;i<3;i++)
{
cout<<endl;
for(j=0;j<3;j++)
{

B[i][j]=A[j][i];
cout<<" B["<<i<<"]["<<j<<"]= "<<B[i][j];

}
}
cout<<endl<<endl;

C[0][0]=B[1][1]*B[2][2]-(B[2][1]*B[1][2]);
C[0][1]=(-1)*(B[1][0]*B[2][2]-(B[2][0]*B[1][2]));
C[0][2]=B[1][0]*B[2][1]-(B[2][0]*B[1][1]);

C[1][0]=(-1)*(B[0][1]*B[2][2]-B[2][1]*B[0][2]);
C[1][1]=B[0][0]*B[2][2]-B[2][0]*B[0][2];
C[1][2]=(-1)*(B[0][0]*B[2][1]-B[2][0]*B[0][1]);

C[2][0]=B[0][1]*B[1][2]-B[1][1]*B[0][2];
C[2][1]=(-1)*(B[0][0]*B[1][2]-B[1][0]*B[0][2]);
C[2][2]=B[0][0]*B[1][1]-B[1][0]*B[0][1];

cout<<"\n========== The adjunct matrix of transpose of the matrix A


==========\n";
for(i=0;i<3;i++)
{
cout<<endl;
for(j=0;j<3;j++)
{
cout<<" C["<<i<<"]["<<j<<"]= "<<C[i][j];

}
}
cout<<endl<<endl;

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
X[i][j]=C[i][j]*x;

}
}

cout<<"\n========== The inverse matrix of the matrix you entered!!!


==========\n";
for(i=0;i<3;i++)
{ cout<<endl;
for(j=0;j<3;j++)
{
cout<<" X["<<i<<"]["<<j<<"]= "<<X[i][j];

}
}
cout<<endl<<endl;

return 0;
}

You might also like