Я новичок в Java. Я пытаюсь вычислить площадь треугольника, используя формулу:Расчет площади треугольника
S = (сторона 1 сторона + 2 + боковые 3)/2
площадь = квадратный корень (сторона (сторона - сторона 1) (сторона - side2) (side-side3).
Если пользователь вводит три точки как: 1,5 -3,4 4,6 5 9,5 -3,4, то площадь треугольника должна быть 33,6. Однако моя программа работает, но она дает мне неправильный ответ. Вот мой код.
// Import Java Scanner
import java.util.Scanner;
import java.lang.Math;
public class Ex_2_19 {
public static void main(String[] args) {
//Create a Scanner object
Scanner input = new Scanner(System.in);
float side = 0;
float area1 = 0;
float area2 = 0;
float area3 = 0;
float area4 = 0;
float calculatedarea = 0;
//Prompt the user to enter three points of a triangle
System.out.println("Enter point x1:");
System.out.println("Enter point y1:");
System.out.println("Enter point x2:");
System.out.println("Enter point y2:");
System.out.println("Enter point x3:");
System.out.println("Enter point y3:");
//Define the variables
float Pointx1 = input.nextFloat();
float Pointy1 = input.nextFloat();
float Pointx2 = input.nextFloat();
float Pointy2 = input.nextFloat();
float Pointx3 = input.nextFloat();
float Pointy3 = input.nextFloat();
//Formula to calculate the area of a triangle
side = (Pointx1 + Pointy1 + Pointx2 + Pointy2 + Pointx3 + Pointy3)/2;
area1 = side - (Pointx1 + Pointy1);
area2 = side - (Pointx2 + Pointy2);
area3 = side - (Pointx3 + Pointy3);
area4 = side * area1 * (area2) * (area3);
calculatedarea = (float) (Math.sqrt(area4));
//calculatedarea = (float) (Math.sqrt(area1)*(area2) * (area3));
//Print result
System.out.println("The area of the triangle is " + calculatedarea);
}
}
Формула, которую вы используете, работает по длине сторон треугольника. Вы просто складываете координаты X и Y каждой точки - вообще ничего не связано с длиной. –
На основе https://www.mathsisfun.com/geometry/herons-formula.html найдите длины a, b, c, вычисляя расстояние между каждой парой координат xy. То, как вы вычисляете область 1, 2, 3 4, кажется неправильным. – Gosu