Ir para conteúdo
Fórum Script Brasil
  • 0

Código C compila direitinho, porém na hora de executar aparece a seguinte mensagem: o programa precisa ser fechado


Jonnathann Finizola

Pergunta

Estou tentando fazer um programa que calcula o determinante de matrizes de qualquer ordem usando cofatores. Para isso estou usando alocação dinamica em C. Implementei duas funções em C chamadas cofator e det_matrix ambas chamam umas as outras. O código compila numa boa sem apresentar erros ou warnings, porém quando executo o codeblocks apresenta um erro dizendo que o programa precisa ser fechado. Eis o código abaixo:

ps: alguém poderia me ajudar?

 

double det_matrix(Matrix* matrix, int order)
{
double cofator(Matrix* matrix, int order, int i_matrix, int j_matrix);

double det = 0.0;
int j;

if(matrix->rows == 1)
{
    det = matrix->point[0][0];
}
else
{
    for(j = 0; j < order; j++)
    {
        det = det + (matrix->point[0][j] * cofator(matrix, matrix->rows, 0, j));
    }
}
return det;

}

double cofator(Matrix* matrix, int order, int i_matrix, int j_matrix)
{

double **sub_matrix = malloc_matrix(matrix->rows, matrix->cols);

int i, j;
int x = 0;
int y = 0;

int n = order - 1;

for(i = 0; i < order; i++)
{
    for(j = 0; j < order; j++)
    {

        if(i != i_matrix && j != j_matrix)
        {

            sub_matrix[x][y] = matrix->point[i][j];
            y++;

            //printf("%i %i", x, y);
            if(y >= n)
            {
                x++;
                y = 0;
            }
        }
    }
}
Matrix *returned = (Matrix*)malloc(sizeof(Matrix));
returned->rows = matrix->rows;
returned->cols = matrix->cols;
returned->point = sub_matrix;

return pow(-1, i_matrix + j_matrix) * det_matrix(returned, matrix->rows);

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...