user1294476
user1294476

Reputation: 103

Area of Triangle, Java

I'm trying to build an app which computes the area of a triangle, as per my homework assignment. Not quite sure where I'm going wrong, but I input the lengths of the triangle and would like the proper area displayed according to Heron's formula: sqrt (s(s-a) (s-b) (s-c)). All I'm getting for output is -0.0. Here is the code:

import java.lang.Math;
public class Formula
{
    double area; double s;
    public double findArea(double sideA, double sideB, double sideC)
    { 
        s = 1/2 * (sideA + sideB + sideC);
        area = Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
        System.out.println("The area of the triangle is " + area);
        return area;
    }
}

And then I have another file for the main args

import java.util.Scanner;

public class findTriangleArea {

    /**
     * @param args
     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub
        Formula triangle = new Formula();
        double a,b,c;

        // input triangle lengths a, b, c 
        Scanner inputTriangle = new Scanner(System.in);
        System.out.println("Please enter triangle side a");
        a = inputTriangle.nextDouble();
        System.out.println("Please enter triangle side b");
        b = inputTriangle.nextDouble();
        System.out.println("Please enter triangle side c");
        c = inputTriangle.nextDouble();
        triangle.findArea(a, b, c);
    }
}

Upvotes: 6

Views: 30534

Answers (3)

sfarshian
sfarshian

Reputation: 21

Heron's Formula:

    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    double a, b, c;
    a = sc.nextDouble();
    b = sc.nextDouble();
    c = sc.nextDouble();
    double p = (a + b + c) / 2;
    System.out.println(Math.sqrt(p * (p - a) * (p - b) * (p - c)));
    }

Upvotes: 0

public class AreaOfTriangle {

public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    System.out.print("Enter the height: ");
    double height=scanner.nextDouble();
    
    System.out.print("Enter the base: ");
    double base=scanner.nextDouble();
    
    scanner.close();
    
    double area=(base*height)/2;
    
    System.out.println("---------------------------");
    System.out.println("Area of Triangle is: "+area);
}

}

Upvotes: 0

Louis Wasserman
Louis Wasserman

Reputation: 198014

1/2 is being computed in integer arithmetic, so like with all integer division, it's truncated -- in this case, to 0. Just write 0.5 and you'll be fine.

Upvotes: 14

Related Questions