Ir para conteúdo
Fórum Script Brasil

Scolare

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que Scolare postou

  1. eu modifiquei o momento em que declaro as variaveis, agora elas são declaradas no comeco da funcao, como dito não mudei a parte de retornar porque como foi dito não faz parte do meu problema propriamente dito e porque para mudar isso depois é facil (realmente não mudei agora porque tenho q correr e so terei tempo novamente amanha) mas o erro continua o mesmo. é um erro q acusa a chamada do procedimento ela acusa o ultimo argumento como conflito de tipo. se eu quiser eu posso ainda adicionar quantos argumentos eu quiser, e ao invés de falar q tem muitos argumentos continua falando de conflitos de tipos no ultimo remover o compilador é um compilador c normal. eu já havia tentado passar com apontadores, cmo dito, mas o erro continuava o mesmo abaixo vai o log da compilacao Compilador: Default compiler Executando gcc.exe... gcc.exe "F:\simplex\Simplex.c" -o "F:\simplex\Simplex.exe" -g3 -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -g3 F:\simplex\Simplex.c: In function `Determinante': F:\simplex\Simplex.c:23: error: incompatible types in assignment F:\simplex\Simplex.c: At top level: F:\simplex\Simplex.c:33: error: conflicting types for 'Remover' F:\simplex\Simplex.c:23: error: previous implicit declaration of 'Remover' was here Execução terminada aqui esta como esta a funcao agora: double Determinante(matriz M) { int i = 0; matriz Aux; double soma = 0; if (M.linhas == M.colunas) { if (M.linhas == 1) return M.M[0][0]; else { for (i = 0; i < M.linhas; i++) { Aux = Remover (M, i, 0); soma += pow(-1,i+2) * ( M.M[i][0] * Determinante(Aux) ); } return soma; } } else printf ("Matriz não quadrada, não existe derivada.\n"); } de um jeito ou de outro obrigado pela atencao
  2. Eu estou fazendo um programa para resolucao de sistemas matematicos. 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 primeiras funcoes 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
×
×
  • Criar Novo...