/*MATRIZ
6.- Un programa que use una matriz de 3×4 para resolver un sistema de 3 ecuaciones con 3 incógnitas usando el método de Gauss
(hacer ceros por debajo de la diagonal principal para luego aplicar sustitución regresiva).
*/
#include <iostream>
#include <windows.h>
using namespace std;
COORD coord={0,0};
void gotoxy (int x, int y)
{
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main ()
{
short i, j, k, pivote, aux;
int matriz[3][4]={};
cout<<"Ingrese la matriz: ";
for (i=0 ; i<3 ; i++)
{
for (j=0 ; j<4 ; j++)
{
gotoxy(j*5, i+3);
cin>>matriz[i][j];
}
}
system("CLS");
if (matriz[0][0]==0 or matriz[1][1]==0 or matriz[1][1]==0)
{
cout<<"La matriz no se puede calcular";
exit(0);
}
cout<<"Este programa calculara la incognita de una matriz X,Y,Z"<<endl;
for (i=0 ; i<3 ; i++)
{
for (j=0 ; j<4 ; j++)
{
gotoxy(j*5, i+3);
cout<<matriz[i][j];
}
}
cout<<endl;
for ( i=0 ; i<3 ; i++ )
{
pivote= matriz[i][i];
for ( k=0 ; k<4 ; k++ )
{
matriz[i][k]=matriz[i][k]/pivote;
}
for ( j=0 ; j<3 ; j++ )
{
if (i!=j)
{
aux= matriz[j][i];
for ( k=0 ; k<4 ;k++ )
{
matriz[j][k]=matriz[j][k]-aux*matriz[i][k];
}
}
}
}
cout<<"Resultado";
for (i=0 ; i<3 ; i++)
{
for (j=0 ; j<4 ; j++)
{
gotoxy(j*5, i+10);
cout<<matriz[i][j];
}
}
cout<<endl<<"Resultado para las incognitas: "<<endl;
for (i=0 ; i<3 ; i++)
{
gotoxy(matriz[i][3]*5,+15);
cout<<matriz[i][3];
}
return 0;
}