[RESOLVIDO]Calcular Area do Triangulo Formula de Heron

3 respostas
J

Estou fazendo um exercício em que eu tenho que calcular mas está dando resultado errado.

public class Challenge
{
    public static void main( String[] args )
	{
		double a;
		
		a = triangleArea(3, 3, 3);
		System.out.println("A triangle with sides 3,3,3 has an area of:" + a);

		a = triangleArea(3, 4, 5);
		System.out.println("A triangle with sides 3,4,5 has an area of:" + a);
 
		a = triangleArea(9, 9, 9);
		System.out.println("A triangle with sides 7,8,9 has an area of:" + a );

	}
	public static double triangleArea( int a, int b, int c )
	{
        
        double s = (a+b+c)/2;


    return Math.pow(s*(s-a)*(s-b)*(s-c), 0.5);
    }
}

3 Respostas

A

Olá o erro está na hora de passar o valor do semiperimetro. vc tá fazendo (a+b+c)/2 sem fazer o cast para double. como ele entende que são valores int então faz o cast implícito para int depois da divisão por 2. Se vc colocar double não dará mais errado:
double s= (double) a+b+c/2;

J

Nâo entendi o que você quis me dizer mas resolveu o meu problema

A

Sem cast ele entende como divisão de inteiros ,se vc dividir dois inteiros de valores literais 3 e 2 , o resultado será 1, caso faça o cast para double o resultado será 1.5 . Lembre-se que os inteiros ignoram a parte fracionário. Diferente dos tipos double.

Criado 28 de dezembro de 2013
Ultima resposta 28 de dez. de 2013
Respostas 3
Participantes 2