#include <iostream.h>
#include <alloc.h>
#include <math.h>
double det(double **m, int b){
double determinante = 0, aux = 0;
int c;
if(b==2)
return m[0][0]*m[1][1] - m[1][0]*m[0][1];
else{
for(int j=0; j<b; j++){
double **menor = (double **)malloc(sizeof(double)*(b-1));
for(int h=0; h<(b-1); h++) menor[h] = (double *)malloc(sizeof(double)*(b-1));
for(int k=1; k<b; k++){
c = 0;
for(int l=0; l<b; l++){
if(l!=j){
menor[k-1][c] = m[k][l];
c++;
}
}
}
aux = pow(-1, 2+j)*m[0][j]*det(menor, b-1);
determinante += aux;
for(int q = 0; q<(b-1); q++)
free(menor[q]);
free(menor);
}
return determinante;
}
}
int main(){
int n; // n = numero de renglones = numero de columnas
double **m=NULL;
cout<<"Elija el numero de renglones o columnas que tiene su matriz: ";
cin>>n;
// Se crea la matriz de forma dinamica
m = (double **)malloc(sizeof(double)*n);
for(int i=0; i<n; i++) m[i]=(double *)malloc(sizeof(double)*n);
// Pide el valor de cada elemento de la matriz
for(int y=0; y<n; y++)
for(int w=0; w<n; w++){
cout<<"Introduzca el valor de matriz["<<y<<"]["<<w<<"]: ";
cin>>m[y][w];
}
// Despliego el resultado de la funcion det
cout<<"nDeterminante: "<<det(m, n);
// Libero la memoria utilizada por la matriz
for(int r=0; r<n; r++) free(m[r]);
free(m);
return 0;
}
Determinante de una matriz de n*n
Este programa obtiene el determinante de una matriz n*n empleando recursividad. Hay que darle como entreada el tamaño de la matriz (n) y los n*n elementos de la matriz (m[i][j]). Devuelve el determinante de la matriz.
Descargar adjuntos
COMPARTE ESTE TUTORIAL
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
determinante
Ok Parese Bueno
algunos otros tips para manejar este lenguaje tan robusto
gracias
hulAX!!! :( toy buscando un progrma q realice el determinante de una matriz.. xfis ayudenmeee xD
hjryjrr6yi
quiero saber a quien ya le funciono el programa de la matriz de n or n si les salio envieenme la codificacion sin errores a mi correo si [email protected] gracias
tuve 2 problemas cuando implemente el codigo: 1) me aparece el siguiente codigo 'pow' : ambiguous call to overloaded function 2)pense q la libreria alloc.h deberia tener esa funcion pero cuando la incluyo me dice q no puede encontrarla seria bueno si alguien me puede mandar la posible solucion a mi correo gushbellino (arroba) g m a i l . c o m gracias de antemano
Espero funcione
ejercicios del tema