# include int main ( ) { double a[2][2]; double b[2][2]; double det; int i; int j; // // To read a double, you need to use the format "LF" for "long float". // printf ( "Enter a 2x2 matrix, row 1, then row 2:" ); scanf ( "%lf%lf%lf%lf", &a[0][0], &a[0][1], &a[1][0], &a[1][1] ); printf ( "\n" ); printf ( "The matrix:\n" ); printf ( "\n" ); for ( i = 0; i < 2; i++ ) { for ( j = 0; j < 2; j++ ) { printf ( " %8f", a[i][j] ); } printf ( "\n" ); } // // Compute the determinant. // det = a[0][0] * a[1][1] - a[0][1] * a[1][0]; // // If the determinant is zero, bail out. // if ( det == 0.0 ) { printf ( "The matrix does not have an inverse.\n" ); return 1; } // // Compute the entries of the inverse matrix using an explicit formula. // b[0][0] = + a[1][1] / det; b[0][1] = - a[0][1] / det; b[1][0] = - a[1][0] / det; b[1][1] = + a[0][0] / det; // // Print it out. // printf ( "\n" ); printf ( "Inverse matrix:\n" ); printf ( "\n" ); for ( i = 0; i < 2; i++ ) { for ( j = 0; j < 2; j++ ) { printf ( " %8f", b[i][j] ); } printf ( "\n" ); } return 0; }