Pesquisar neste blog

07/04/2026

Determinante de Matriz ordem n

Determinante de uma matriz ordem n x n em linguagem C

#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: