#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 5
double determinante(int n, double A[MAX][MAX]) {
double det = 1;
int i, j, k;
for(i = 0; i < n; i++) {
if(A[i][i] == 0)
return 0;
for(j = i + 1; j < n; j++) {
double fator = A[j][i] / A[i][i];
for(k = i; k < n; k++) {
A[j][k] = A[j][k] - fator * A[i][k];
}
}
}
for(i = 0; i < n; i++) {
det *= A[i][i];
}
return det;
}
int main() {
int n, i, j;
double A[MAX][MAX];
double B[MAX][MAX];
srand(time(NULL));
printf("Digite a ordem da matriz (2 a 5): ");
scanf("%d", &n);
if(n < 2 || n > 5){
printf("Valor invalido!\n");
return 0;
}
printf("\nMatriz gerada:\n");
for(i = 0; i < n; i++){
for(j = 0; j < n; j++){
A[i][j] = rand() % 26;
B[i][j] = A[i][j];
printf("%4.0lf", A[i][j]);
}
printf("\n");
}
double det = determinante(n, B);
printf("\nDeterminante = %.2lf\n", det);
return 0;
}
Nenhum comentário:
Postar um comentário