para isso, preciso das operacoes de matrizes envolvendo transpostas, multiplicacoes, determinantes e inversas
para isso, criei uma estrutura para a matriz, que indica tambem o numero de linhas e colunas para ela:
typedef struct matriz { float M[15][15]; int linhas, colunas; }matriz;
alem das funcoes já ditas, criei uma funcao que remove uma linha e uma coluna de uma matriz.
as chamadas das minhas funcoes de transposta, multiplicacao e determinante são :
matriz Remover(matriz M, int linha, int coluna)
matriz Transposta(matriz M)
matriz Mult(matriz M1, matriz M2)
float Determinante(matriz M)
as tres funcoes matrizes funcionam normalmente quando testadas dentro do main do programa.
mas na funcao derivada, quando eu faco uma chamada para a funcao de remocao, ocorre um erro de onflito de tipos na funcao remover.
float Determinante(matriz M) { if (M.linhas == M.colunas) { if (M.linhas == 1) return M.M[0][0]; else { float soma = 0; int i = 0; matriz Aux; for (i = 0; i < M.linhas; i++) { Aux = Remover (M, i, 0); <-- nesta chamada ocorre o erro soma += pow(-1,i+2) * ( M.M[i][0] * Determinante(Aux) ); } return soma; } } else printf ("Matriz não quadrada, não existe derivada.\n"); }
eu já tentei fazer a funcao de remocao usando ponteiros ao invés de retorno, mas o mesmo erro ocorre
tentei tambem chamar as outras funcoes dentro uma da outra, mas ocorre o mesmo erro sempre que uma funcao é chamada dentro de outra
alguém sabe qual pode ser o problema?
grato
Edição feita por: Scolare, 19/10/2008, 21:08.