Compruebe Triángulo Tipo en Java

Allo0o2a:

No sé qué le pasa a mi código, creo que tengo algo mal con mis si statments! Por favor, compruebe el código de abajo;


package triangle2;
import java.util.*;
public class Triangle2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the sides of Triangle");
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt(); 
if (a <= 0 || b <= 0 || c <= 0)
System.out.println("InvalidInput");
if(a >= (b+c) || c >= (b+a) || b >= (a+c) )
System.out.println("Not a Triangle");
if(a==b && b==c)
System.out.println("Equilateral Triangle");
else if (((a * a) + (b * b)) == (c * c) || ((a * a) + (c * c)) == (b * b) || ((c * c) + (b * b)) == (a * a))
System.out.println("Right Triangle");
else if(a!=b && b!=c && c!=a)
System.out.println("Scalene Triangle");
else if ((a==b && b!=c ) || (a!=b && c==a) || (c==b && c!=a))
System.out.println("Isosceles Triangle");
}   
}

Además, he intentado lo siguiente, pero todavía no pude resolverlo! He creado un método para comprobar el triángulo y luego tuve un objeto de la clase Triángulo en la principal pero aún así. Creo que es del caso y elseif. empaquetar triángulo; importar java.util. *;

class Triangle {
int a,b,c;

public Triangle(){
Scanner sc = new Scanner(System.in);
System.out.println("Enter the sides of Triangle");
try{
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
}
catch(InputMismatchException ime){
System.out.println("Error: your value must be an integer!");
}
if (a <= 0 || b <= 0 || c <= 0)
System.out.println("InvalidInput");  
}

public void CheckTriangle(){ 
int triType = 0;
if(a >= (b+c) || c >= (b+a) || b >= (a+c) )
System.out.println( "Not a Triangle");
else if(a==b && b==c)
System.out.println( "Equilateral Triangle");
else if (((a * a) + (b * b)) == (c * c) || ((a * a) + (c * c)) == (b * b) || ((c * c) + (b * b)) == (a * a))
System.out.println( "Right Triangle");
else if(a!=b && b!=c && c!=a)
System.out.println( "Scalene Triangle" );
else if ((a==b && b!=c ) || (a!=b && c==a) || (c==b && c!=a))
System.out.println( "Isosceles Triangle");
}

public static void main(String[] args) {
Triangle t=new Triangle();
t.CheckTriangle();
}
}
ADXL:

Su programa es correcto, la razón por la que estaba imprimiendo "No es un triángulo" en cada prueba es porque no se detenerlo después de encontrar un triángulo válido, esto debería funcionar para usted:

if(a<=0 || b<=0 || c<=0)
    System.out.println("InvalidInput");
else if(a>=(b+c) || c>=(b+a) || b>=(a+c))
    System.out.println("Not a Triangle");
else if(a==b && b==c)
    System.out.println("Equilateral Triangle");
else if(((a*a)+(b*b))==(c*c) || ((a*a)+(c*c))==(b*b) || ((c*c)+(b*b))==(a*a))
    System.out.println("Right Triangle");
else if(a!=b && b!=c && c!=a)
    System.out.println("Scalene Triangle");
else if(a==b || c==a || c==b)
    System.out.println("Isosceles Triangle");

Nota: Me ligeramente optimizado la última condición, dado que está utilizando un if / else, algunas de las condiciones que ya se han probado y siempre estaré trueen ese punto del programa.
Por ejemplo: en (a==b && b!=c ), la condición b!=cya se ha verificado en el caso anterior (la prueba "escaleno Triángulo").

EDITAR:

Para asegurarse de que las entradas son números, sólo tiene que rodear su código en un Try/Catchbloque:

System.out.println("Enter the sides of Triangle");
try
{
    int a=sc.nextInt();
    int b=sc.nextInt();
    int c=sc.nextInt();
    if(a<=0 || b<=0 || c<=0)
        System.out.println("InvalidInput");
    else if(a >= (b+c) || c >= (b+a) || b >= (a+c))
        System.out.println("Not a Triangle");
    else if(a==b && b==c)
        System.out.println("Equilateral Triangle");
    else if(((a*a)+(b*b))==(c*c) || ((a*a)+(c*c))==(b*b) || ((c*c)+(b*b))==(a*a))
        System.out.println("Right Triangle");
    else if(a!=b && b!=c && c!=a)
        System.out.println("Scalene Triangle");
    else if(a==b || c==a || c==b)
        System.out.println("Isosceles Triangle");
} catch(Exception e)
{
    System.out.println("Error: enter a number!");
}

PRUEBA

introducir descripción de la imagen aquí

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=300367&siteId=1
Recomendado
Clasificación