rendered paste body//Montante algorithm, implemented by Tigrux#include <iostream>#include <iomanip>using namespace std;const int MAX= 3;const int ROWS= MAX;const int COLS= MAX;typedef long T;void Montante(T A[ROWS][COLS],T B[ROWS][COLS] );void imprimeMatriz(T A[ROWS][COLS]);int main() { T A[ROWS][COLS]= { {3, 9, 5}, {1, 5,10}, {2,-3,-1}, }; T B[ROWS][COLS]= { {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, }; cout << "Matriz original"<< endl; imprimeMatriz(A); Montante(A,B); cout << "Matriz reducida" << endl; imprimeMatriz(A); cout << "El valor del determinante es " << A[0][0] << endl; cout << "Matriz adjunta" << endl; imprimeMatriz(B); return 0;}void Montante(T A[ROWS][COLS],T B[ROWS][COLS] ) { int i,j; T PivAnt=1,PivAct; for(int k=0;k<ROWS;k++) { //Para toda la diagonal PivAct= A[k][k]; for(i=0;i<ROWS;i++) //Para cada renglon if(i != k) { for(j=0;j<COLS;j++) //Para cada columna if(j != k) A[i][j]= ( A[i][j]*PivAct-A[i][k]*A[k][j] )/PivAnt; for(j=0;j<COLS;j++) //Para cada columna B[i][j]= ( B[i][j]*PivAct-A[i][k]*B[k][j] )/PivAnt; A[i][k]= 0; } PivAnt= PivAct; }}void imprimeMatriz(T A[ROWS][COLS] ) { for(int i=0;i<ROWS;i++) { for(int j=0;j<COLS;j++) cout << setw(6) << A[i][j]; cout << endl; }}