/*
3.- Crear un programa que pida al usuario los datos de una matriz de 3×3, y calcule y muestre su matriz adjunta.
*/
#include<iostream>
using namespace std;
int main(){
//-------------------------------------VARIABLES--------------------------------------------
int matriz[3][3], mAdjunta[3][3];
//-----------------------------------OPERACIONES-------------------------------------------
cout<<"\t Ingreso de matriz 3x3\n\n";
for(int i=0; i<=2; i++) {
for(int j=0; j<=2; j++){
cout<<"\t Ingresar valor ["<<i<<"] "<<"["<<j<<"]: ";
cin>>matriz[i][j];
}
cout<<endl;
}
/* + - +
( [0][0] [0][1] [0][2] )
- + -
( [1][0] [1][1] [1][2] )
+ - +
( [2][0] [2][1] [2][2] ) */
//Primera Fila
mAdjunta[0][0] = +1 * (matriz[1][1] * matriz[2][2]) - (matriz[2][1] * matriz[1][2]);//Resultado con signo +
mAdjunta[0][1] = -1 * (matriz[1][0] * matriz[2][2]) - (matriz[2][0] * matriz[1][2]);//Resultado con signo -
mAdjunta[0][2] = +1 * (matriz[1][0] * matriz[2][1]) - (matriz[2][0] * matriz[1][1]);//Resultado con signo +
//Segunda Fila
mAdjunta[1][0] = -1 * (matriz[0][1] * matriz[2][2]) - (matriz[2][1] * matriz[0][2]);//Resultado con signo -
mAdjunta[1][1] = +1 * (matriz[0][0] * matriz[2][2]) - (matriz[2][0] * matriz[0][2]);//Resultado con signo +
mAdjunta[1][2] = -1 * (matriz[0][0] * matriz[2][1]) - (matriz[2][0] * matriz[0][1]);//Resultado con signo -
//Tercera Fila
mAdjunta[2][0] = +1 * (matriz[0][1] * matriz[1][2]) - (matriz[1][1] * matriz[0][2]);//Resultado con signo +
mAdjunta[2][1] = -1 * (matriz[0][0] * matriz[1][2]) - (matriz[1][0] * matriz[0][2]);//Resultado con signo -
mAdjunta[2][2] = +1 * (matriz[0][0] * matriz[1][1]) - (matriz[1][0] * matriz[0][1]);//Resultado con signo +
//------------------------------------RESULTADO--------------------------------------------
cout<<"\t Matriz Adjunta: \n\n";
for(int i=0; i<=2; i++){
for(int j=0; j<=2; j++){
cout<<"\t "<<mAdjunta[i][j]<<" ";
}
cout<<"\n";
}
return 0;
}