三角形的面积,Java

6

我在尝试构建一个应用程序,计算三角形的面积,以完成我的作业任务。不太确定我做错了什么,但我输入了三角形的长度,并希望根据海伦公式显示正确的面积: sqrt(s(s-a)(s-b)(s-c))。但是我得到的输出只有-0.0。以下是代码:

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;
    }
}

然后我有另一个文件用于主要参数

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);
    }
}

1
你输入了什么?给我们一个样例运行,这样我们就能更清楚地看到问题了(尽管问题格式良好)。 - Jon Egeland
3个回答

14

1/2正在使用整数算术进行计算,因此像所有整数除法一样,它被截断了--在这种情况下,被截断为0。只需写0.5即可。


或者,1.0/2,或者(sideA + sideB + sideC) / 2 - Greg Hewgill
谢谢!运行得非常顺利。 - user1294476

0

公共类 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);
}

}


0

海伦公式:

    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)));
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接