2016-08-31 4 views
-5

У меня есть вопрос, который я хотел бы задать вам. В моей книге по программированию на Java мне предлагается написать программу, которая находит область треугольника с учетом 3 баллов. Я пробовал много способов, но я не мог получить правильный ответ. Не могли бы вы дать мне решение этой проблемы. Благодаря! Вот вопрос:Поиск области треугольника

2.15

Вот мой код:

import java.util.Scanner; 

public class shw2point15 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter three points for a triangle:"); 

     double x1 = input.nextDouble(); 
     double y1 = input.nextDouble(); 
     double x2 = input.nextDouble(); 
     double y2 = input.nextDouble(); 
     double x3 = input.nextDouble(); 
     double y3 = input.nextDouble(); 


     double s = ((x1 + y1) + (x2 + y2) + (x3 + y3))/2; 
     double area = Math.sqrt(s * (s - (x1 - y1)) * (s - (x2 - y2)) * (s - (x3 - y3))); 



     System.out.println("The area of the triangle is " + area); 
    } 
} 
+0

Я думаю, ваша проблема в том, что вы добавляете x1 в y1, чтобы найти длину стороны, я думаю, что это будет сделано по-другому, но я не смог геометрию, так что я не могу помочь –

+0

Это вы? http://programmers.stackexchange.com/questions/329771/finding-area-of-a-triangle-using-equations – Blorgbeard

+1

* 3 * points; 6 номеров. Я был немного озадачен этим. –

ответ

0

Причина вы не получаете правильный ответ, потому что вы не находя стороны правильно. Однако, после нахождения боковой длины, вы можете получить ответ. Вот что я сделал:

public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter three points for a triangle:"); 

     //Store the values in an array. 
     double[] xCoordinates = new double[3]; 
     double[] yCoordinates = new double[3]; 
     double[] sides = new double[3]; 

//  Input the values into the array 
     xCoordinates[0] = input.nextDouble(); 
     yCoordinates[0] = input.nextDouble(); 
     xCoordinates[1] = input.nextDouble(); 
     yCoordinates[1] = input.nextDouble(); 
     xCoordinates[2] = input.nextDouble(); 
     yCoordinates[2] = input.nextDouble(); 

//  Find the side length from the input. There probably are better ways to do this. 
     sides[0] = Math.sqrt(Math.pow(xCoordinates[0]-xCoordinates[1], 2)+Math.pow(yCoordinates[0]-yCoordinates[1], 2)); 
     sides[1] = Math.sqrt(Math.pow(xCoordinates[1]-xCoordinates[2], 2)+Math.pow(yCoordinates[1]-yCoordinates[2], 2)); 
     sides[2] = Math.sqrt(Math.pow(xCoordinates[2]-xCoordinates[0], 2)+Math.pow(yCoordinates[2]-yCoordinates[0], 2)); 

//  Find s from the sides 
     double s = (sides[0]+sides[1]+sides[2])/2; 

//  Find the area. 
     double area = Math.sqrt(s*(s-sides[0])*(s-sides[1])*(s-sides[2])); 

//  Print the area 
     System.out.println("The area of the triangle is "+area); 

//  Output~~~~~~~~~~~~~~~ 
//Enter three points for a triangle: 
//  1.5 
//  -3.4 
//  4.6 
//  5 
//  9.5 
//  -3.4 
//  The area of the triangle is 33.600000000000016 
}' 
+0

спасибо, никогда не думал об этом таким образом. :) –

Смежные вопросы