Pessoal, estou com um problema, preciso identificar 3 tipos de triangulo. Acutângulo, Retângulo e Obtusângulo. Como posso identificar?
foi facil o Acutangulo pois os 3 lados sao iguais, logo nao preciso calcular o angulo de cada lado.
Código
import java.util.Scanner;
class triangulos_11004 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a,b,c;
while(true){
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
if(a==0&&b==0&&c==0) break;
if((a == b)&&(b==c)){
System.out.println("a");
}
//agora quero identificar o angulo dos outros tipos
}
}
}
Dei uma pesquisada no google, porém encontrei diversos sites falando sobre como achar a altura etc etc… quero só o angulo interno, como posso calcular só o angulo?
Cara, esse seu problema é mto fácil, porém não entendi bem o que vc esta precisando?
Explica melhor? Você precisa apenas se ele é Acutângulo, retângulo ou obtusângulo?
Se for tá facil vc de cara tem que jogar num If por exemplo para saber se ele é retângulo:
a² = b² + c²
Sendo ‘a’ a hipotenusa, ‘b’ e ‘c’ os catetos.
(Note que a hipotenusa é sempre maior que os catetos.)
Depois veja:
Se não for retângulo, use a lei dos cossenos para ver se algum dos ângulos tem cosseno negativo.
Se sim, então o triângulo é obtusângulo.
(Ângulos maiores que 90° e menores que 180° têm cosseno negativo.)
Lei dos cossenos: cos  = (b² + c² - a²)/2bc
por fim:
aso ele não for retângulo e tampouco obtusângulo, só resta ser acutângulo. 
[quote=gpzim98]a² = b² + c²
Sendo ‘a’ a hipotenusa, ‘b’ e ‘c’ os catetos.
(Note que a hipotenusa é sempre maior que os catetos.)
Depois veja:
Se não for retângulo, use a lei dos cossenos para ver se algum dos ângulos tem cosseno negativo.
Se sim, então o triângulo é obtusângulo.
(Ângulos maiores que 90° e menores que 180° têm cosseno negativo.)
Lei dos cossenos: cos  = (b² + c² - a²)/2bc
por fim:
aso ele não for retângulo e tampouco obtusângulo, só resta ser acutângulo. :)[/quote]
A fonte desse texto é o link que postei logo acima. 
sim, eu apenas organizei o codigo, da forma como ele deve fazer seus If’s/Else…
mas eu preciso dos angulos, como eu vou pegar tipo a=2 b= 5 c=2 e saber os angulos… e tipo… como sei que nao da pra ser um triangulo???
Por exemplo, para eu fazer o retangulo preciso saber quem é a hipotenusa. Como vou guardar que é a… ou que é b…
pois eu pensei assim
maior=a;
if (maior < b)
maior = b;
if (maior < c)
maior = c;
porem… eu só terei o numero maior… nao quem é o maior entendem?
Pessoal, agora vai… ele ja esta identificando se é todos os lados iguais e se ele é retangulo… vlw!!! só falta mais um se nao for nenhum dos tres, nao é triangulo.
import java.util.Scanner;
class triangulos_11004 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b, c, maior;
while (true) {
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
if (a == 0 && b == 0 && c == 0)
break;
if ((a == b) && (b == c)) {
System.out.println("a");
}
maior = a;
if ((maior * maior) == (b * b) + (c * c)) {
System.out.println("r");
break;
}
if (maior < b)
maior = b;
if ((maior * maior) == (a * a) + (c * c)) {
System.out.println("r");
break;
}
if (maior < c)
maior = c;
if ((maior * maior) == (b * b) + (a * a)) {
System.out.println("r");
break;
}
}
}
}
dei uma travada aqui
import java.util.Scanner;
class triangulos_11004 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b, c, maior,ang;
while (true) {
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
if (a == 0 && b == 0 && c == 0)
break;
if ((a == b) && (b == c)) {
System.out.println("a");
}
//retangulo
maior = a;
if ((maior * maior) == (b * b) + (c * c)) {
System.out.println("r");
break;
}
if (maior < b)
maior = b;
if ((maior * maior) == (a * a) + (c * c)) {
System.out.println("r");
break;
}
if (maior < c)
maior = c;
if ((maior * maior) == (b * b) + (a * a)) {
System.out.println("r");
break;
}
//angulos
ang=((b*b) + (c*c) - (a*a))/2*b*c;
if(ang>90||ang<180){
System.out.println("o");
break;
}
//nao é triangulo
System.out.println("n");
}
}
}
vamos aos testes 1 2 1 era para ele dizer que nao da pra ser um retangulo ou seja… aparecer um “n”.
mas ele esta aparecendo um o de obtusangulo… e agora?
eu tinha esquecido do && ao inves de || para o primeiro teste… vlw pessoal!
import java.util.Scanner;
class triangulos_11004 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b, c, maior, ang;
while (true) {
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
if (a == 0 && b == 0 && c == 0)
break;
if ((a == b) && (b == c)) {
System.out.println("a");
break;
}
// retangulo
maior = a;
if ((maior * maior) == (b * b) + (c * c)) {
System.out.println("r");
break;
}
if (maior < b)
maior = b;
if ((maior * maior) == (a * a) + (c * c)) {
System.out.println("r");
break;
}
if (maior < c)
maior = c;
if ((maior * maior) == (b * b) + (a * a)) {
System.out.println("r");
break;
}
// angulos
ang = ((b * b) + (c * c) - (a * a)) / 2 * b * c;
if (ang > 90 && ang < 180) {
System.out.println("o");
break;
}
// nao é triangulo
System.out.println("n");
}
}
}