// Cramer's Rule #include using namespace std; double det2(double a, double b, double c, double d); double det3(double a, double b, double c, double d, double e, double f, double g, double h, double i); int main() { double m[3][4] = {0}; double x = 0.0; double y = 0.0; double z = 0.0; double denom = 0.0; cout << "Input your matrix elements row by row:" << endl; for (int row = 0; row < 3; row++) { for (int col = 0; col < 4; col++) { cin >> m[row][col]; } } denom = det3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); x = det3(m[0][3], m[0][1], m[0][2], m[1][3], m[1][1], m[1][2], m[2][3], m[2][1], m[2][2]) / denom; y = det3(m[0][0], m[0][3], m[0][2], m[1][0], m[1][3], m[1][2], m[2][0], m[2][3], m[2][2]) / denom; z = det3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]) / denom; cout << "x = " << x << endl; cout << "y = " << y << endl; cout << "z = " << z << endl; return 0; }// end of main double det2(double a, double b, double c, double d) { return a * d - b * c; }// end of det2 double det3(double a, double b, double c, double d, double e, double f, double g, double h, double i) { double part1 = 0.0; double part2 = 0.0; double part3 = 0.0; part1 = a * det2(e, f, h, i); part2 = b * det2(d, f, g, i); part3 = c * det2(d, e, g, h); return part1 - part2 + part3; }// end of det3