Identificar triangulo em Java

Olá pessoal,
preciso criar um programinha em java que leia 3 valores que representam os lados de um triângulo, verifique se eh um triangulo equilatero (três lados iguais), isósceles (dois lados iguais) ou escaleno (três lados diferentes). Primeiro devo verificar se os três lados formam um triângulo: cada lado é menor do que a soma dos outros dois).

Eu fiz o programa assim:

public class Primeiro { 
//cria class Primeiro

	public static void triangulos(){
	int x;//declarando variaveis
	int y;
	int z;
	
	Scanner x = new Scanner (System.in);//lendo dados do teclado, pois e o usuario que vai inserir os dados
	Scanner y = new Scanner (System.in);
	Scanner z = new Scanner (System.in);
	
	if (x < y + z || y < x + z || z < x+y){
		System.out.println("Trata-se de um triangulo");
	}

                     //comparando se eh um triangulo

	if (x == y && x == z){
		System.out.println("Três lados iguais . Trata-se de um Triangulo Equilatero");
	}else if(x == y || x == z){
		System.out.println("Dois lados iguais . Trata-se de um Triangulo Isosceles");
		}else
		System.out.println("Três lados diferentes.");


	
	
}

public static void main(String[] args) {
        System.out.println("Triangulo");

vc ta criando tres variaveis do tipo int, x y e z.

depois cria outras variaveis do tipo Scanner com os mesmos nomes…

começa arrumando isso…

o scanner se usa assim:

Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();

no seu else if, vc nao esta testando tudo, para ser isóceles, pode ser x == y ou y == z ou z == x.

:wink:

[]'s

1 curtida

import java.util.HashSet;
import java.util.Set;

public class Triangulo {

    public static Set validarTriangulo(double a, double b, double c) {
        
        Set<String> propriedades = new HashSet<String>();
        
        double hipotenusa = a;

        if (hipotenusa < b) {
            hipotenusa = b;
        }

        if (hipotenusa < c) {
            hipotenusa = c;
        }

        if ((a + b + c - hipotenusa) > hipotenusa) {
            propriedades.add("Válido");
        } else {
            propriedades.add("Inválido");
            return propriedades;
        }

        if (a == b || b == c || c == a) {
            if (a == b && b == c) {
                propriedades.add("Equilátero");
            } else {
                propriedades.add("Isósceles");
            }
        }

        if (a != b && b != c && c != a) {
            propriedades.add("Escaleno");
        }

        if (((a * a + b * b + c * c) - hipotenusa * hipotenusa) == hipotenusa * hipotenusa) {
            propriedades.add("Retângulo");
        }

        return propriedades;
    }

    public static void mostrarPropriedades(Set set) {
        for (Object s : set) {
            System.out.print(s + "   ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
       Set set1 = validarTriangulo(10, 12, 16);
       Set set2 = validarTriangulo(4, 3, 3);
       Set set3 = validarTriangulo(4, 6, 2);
       Set set4 = validarTriangulo(3, 4, 5);
       
       mostrarPropriedades(set1);
       mostrarPropriedades(set2);
       mostrarPropriedades(set3);
       mostrarPropriedades(set4);
    }
}

Que tal?

2 curtidas

Pessoa fiz assim
digam se ficou bom

public class Primeiro {



  public static void main(String[] args) {


          int x, y, z;

          x = InOut.leInt("Entre com o primeiro lado"); // classe particular criada para ler entrada de dados do teclado//
          y = InOut.leInt("Entre com o segundo lado");
          z = InOut.leInt("Entre com o terceiro lado");

       

   if ((x < y + z) && (y < x + z) && (z < x+y)){
        if (x == y && x == z){
          System.out.println("Três lados iguais . Trata-se de um Triangulo Equilatero");
        }else if((x == y) || (x == z)){
          System.out.println("Dois lados iguais . Trata-se de um Triangulo Isosceles");
        }else
            System.out.println("Três lados diferentes.");
       }

    }
}

Cara, da pra limpar o seu codigo, eu fiz de uma forma mais simples aqui, tem alguns sysou’s pra facilitar a vida do ususario!
tambem coloquei um while pra poder usar o programa novamente! espero que ajude:

[code]import java.util.Scanner;

public class Triangulo {

public static void main(String[] args) {

    int lado1, lado2, lado3;
    int opcao = 1;

    while (opcao == 1) {
        Scanner s = new Scanner(System.in);

        System.out.println("Entre com o lado 1:");
        lado1 = s.nextInt();
        System.out.println("------------------------------------------------");
        System.out.println("Entre com lado 2:");
        lado2 = s.nextInt();
        System.out.println("------------------------------------------------");
        System.out.println("Entre com lado 3:");
        lado3 = s.nextInt();
        System.out.println("------------------------------------------------");

        if ((lado1 < lado2 + lado3) && (lado2 < lado1 + lado3) && (lado3 < lado1 + lado2)) {
            if (lado1 == lado2 && lado1 == lado3) {
                System.out.println("Triangulo Equilatero");
            } else if ((lado1 == lado2) || (lado1 == lado3)) {
                System.out.println("Triangulo Isosceles");
            } else
                System.out.println("Triângulo Escaleno");
        } else {
            System.out.println("Não é um triangulo!");
        }
        System.out.println("------------------------------------------------");
        System.out.println("Deseja continuar? 1 = sim, 2 = não");
        opcao = s.nextInt();
        System.out.println("------------------------------------------------");
    }
    System.out.println("Tchau!");
}

}[/code]

1 curtida