Dzago 2 Denunciar post Postado Julho 11, 2012 #include<stdio.h> #include<math.h> double hipotenusa(double side1, double side2); int main(void){ double lado1, lado2; printf("Entre com os lados do triangulo.\n"); scanf("%f%f", &lado1, &lado2); printf("A hipotenusa é: %.2f", hipotenusa(lado1, lado2)); return 0; } double hipotenusa(double side1, double side2){ double hip; hip = pow((side1 * side1) + (side2 * side2), 1/2); return hip; } Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Julho 11, 2012 O retorno da função está incorreto. Você está tentando imprimir um float, mas a sua função retorna um double. Compartilhar este post Link para o post Compartilhar em outros sites
Dzago 2 Denunciar post Postado Julho 11, 2012 Cara, Não é isso n. O printf aceita %f para variáveis do tipo double. Pelo que consegui ver, o erro está na função pow. Não sei porque ela joga em uma das variáveis que calcula um nº negativo, aí não é aceita na raiz quadrada e retorna um erro. Fazendo com sqrl no lugar de pow roda beleza. Flw!!! Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Julho 11, 2012 Não dá erro nenhum. De fato, use o formato adequado para ler valores de tipo double: %lf (obs: para impressão, %f já especifica double). O que você deve ter tentado dizer é que o resultado não é o que você espera (sempre 1.00). O motivo disto é a divisão inteira usada como argumento para pow. Veja este tópico. Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Julho 12, 2012 Vlw pela correção! Não sabia que %f podia especificar um double no printf. Compartilhar este post Link para o post Compartilhar em outros sites
Dzago 2 Denunciar post Postado Julho 12, 2012 Vlw guidjos, O post lá era exatamente o meu problema, e ainda fiquei sabendo que existem várias biblio que o gcc precisa de uma ajudinha. Vlw mesmo!!!!! Mas será que tenho como trocar o titulo do tópico? Gostaria de colocar algo como: problema com a função POW. Outros tb podem ficar perdidos assim como eu fiquei. Compartilhar este post Link para o post Compartilhar em outros sites