Java Programming Language The math to calculate the area for scalene, isoceles, and equlateral triangles are apparently wrong. Only the calculations for the right triange are correct. I need the correct calculations for the area of the other triangles. This is my program: import java.util.Scanner; public class TriangleClassifier { public static void main(String[] args) { Scanner Keyboard = new Scanner(System.in); int side1, side2, side3; boolean valid = true; System.out.println("Welcome to the Triangle Classifier Program"); System.out.println("Enter the lengths of the three (3) triangle sides" + " in ascending order >>"); side1 = Keyboard.nextInt(); // I don't know why, but you must enter the values a second time side2 = Keyboard.nextInt(); // for the program to start. side3 = Keyboard.nextInt(); if (Keyboard.hasNextInt()) { side1 = Keyboard.nextInt(); } else { Keyboard.next(); valid = false; } if (!valid) { System.out.println("Error - At least one of your sides is not an integer"); return; } if (Keyboard.hasNextInt()) { side2 = Keyboard.nextInt(); } else { Keyboard.next(); valid = false; } if (!valid) { System.out.println("Error - At least one of your sides is not an integer"); return; } if (Keyboard.hasNextInt()) { side3 = Keyboard.nextInt(); } else { Keyboard.next(); valid = false; } if (!valid) { System.out.println("Error - At least one of your sides is not an integer"); return; } if ((side1 <= 0) || (side2 <= 0) || (side3 <= 0)) { System.out.println("Error - At least one of your sides is an invalid integer value"); return; } if ((side2 < side1) || (side3< side2)) { System.out.println("Error - Sides not in ascending order"); return; } if (side1 + side2 < side3) { System.out.println("Error - Sides cannot form a valid triangle"); return; } else { if (side1==side2 && side2==side3) System.out.println("The triangle is an equilateral"); if ((side1==side2 && side2!=side3 && side1!=side3) || (side2==side3 && side2!=side1 && side3!=side1) || (side3==side1 && side3!=side2 && side1!=side2)) System.out.println("The triangle is an isosceles"); if (side1*side1 + side2*side2==side3*side3) System.out.println("The triangle is a right triangle"); if (side1!=side2 && side1!=side3 && side2!=side3) System.out.println("The triangle is a scalene"); } double S = (side1+side2+side3)/2; double area = Math.sqrt(S*(S-side1)*(S-side2)*(S-side3)); System.out.println("The area of this triangle is " + area);
Java
The math to calculate the area for scalene, isoceles, and equlateral triangles are apparently wrong. Only the calculations for the right triange are correct.
I need the correct calculations for the area of the other triangles.
This is my program:
import java.util.Scanner;
public class TriangleClassifier
{
public static void main(String[] args)
{
Scanner Keyboard = new Scanner(System.in);
int side1, side2, side3;
boolean valid = true;
System.out.println("Welcome to the Triangle Classifier Program");
System.out.println("Enter the lengths of the three (3) triangle sides"
+ " in ascending order >>");
side1 = Keyboard.nextInt(); // I don't know why, but you must enter the values a second time
side2 = Keyboard.nextInt(); // for the program to start.
side3 = Keyboard.nextInt();
if (Keyboard.hasNextInt())
{
side1 = Keyboard.nextInt();
}
else
{
Keyboard.next();
valid = false;
}
if (!valid)
{
System.out.println("Error - At least one of your sides is not an integer");
return;
}
if (Keyboard.hasNextInt())
{
side2 = Keyboard.nextInt();
}
else
{
Keyboard.next();
valid = false;
}
if (!valid)
{
System.out.println("Error - At least one of your sides is not an integer");
return;
}
if (Keyboard.hasNextInt())
{
side3 = Keyboard.nextInt();
}
else
{
Keyboard.next();
valid = false;
}
if (!valid)
{
System.out.println("Error - At least one of your sides is not an integer");
return;
}
if ((side1 <= 0) || (side2 <= 0) || (side3 <= 0))
{
System.out.println("Error - At least one of your sides is an invalid integer value");
return;
}
if ((side2 < side1) || (side3< side2))
{
System.out.println("Error - Sides not in ascending order");
return;
}
if (side1 + side2 < side3)
{
System.out.println("Error - Sides cannot form a valid triangle");
return;
}
else
{
if (side1==side2 && side2==side3)
System.out.println("The triangle is an equilateral");
if ((side1==side2 && side2!=side3 && side1!=side3) || (side2==side3 && side2!=side1 && side3!=side1)
|| (side3==side1 && side3!=side2 && side1!=side2))
System.out.println("The triangle is an isosceles");
if (side1*side1 + side2*side2==side3*side3)
System.out.println("The triangle is a right triangle");
if (side1!=side2 && side1!=side3 && side2!=side3)
System.out.println("The triangle is a scalene");
}
double S = (side1+side2+side3)/2;
double area = Math.sqrt(S*(S-side1)*(S-side2)*(S-side3));
System.out.println("The area of this triangle is " + area);
}
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images