java判断三角形类型并计算三角形面积

Java判断三角形类型并计算面积
import java.util.Scanner;

public class HomeWork2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入三条边的数据并以空格分开");
        //定义三角形三个边并通过输入获取数据
        int a = input.nextInt();
        int b = input.nextInt();
        int c = input.nextInt();
        if (a != 0 && b != 0 && c != 0 && (a + b) > c) {
            System.out.println("三角形成立");
            //定义面积area
            int p = (a + b + c) / 2;
            int temp = p * (p - a) * (p - b) * (p - c);
            double area = Math.sqrt(temp);
//*******************************************************************************************
            if (a * a + b * b > c * c) {
                System.out.println("此三角形为锐角三角形,面积为:" + area);
            } else if (a * a + b * b < c * c) {
                System.out.println("此三角形为钝角三角形,面积为:" + area);
            } else if (a * a + b * b == c * c) {
                System.out.println("此三角形为直角三角形,面积为:" + area);
            }
        } else {
            System.out.println("你输入的三条边无法构成三角形");
        }
    }
}

为啥三角形三边为4 6 9时面积输出为0.0

img

值为0 上边 int p = (a + b + c) / 2; 19/2=9 ,要么就都换成double

img

 public static void main(String[] args)  {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入三条边的数据并以空格分开");
        //定义三角形三个边并通过输入获取数据
        int a = input.nextInt();
        int b = input.nextInt();
        int c = input.nextInt();
        if (a != 0 && b != 0 && c != 0 && (a + b) > c) {
            System.out.println("三角形成立");
            //定义面积area
            double p = (a + b + c) / 2.0;
            double temp = p * (p - a) * (p - b) * (p - c);
            double area = Math.sqrt(temp);
//*******************************************************************************************
            if (a * a + b * b > c * c) {
                System.out.println("此三角形为锐角三角形,面积为:" + area);
            } else if (a * a + b * b < c * c) {
                System.out.println("此三角形为钝角三角形,面积为:" + area);
            } else if (a * a + b * b == c * c) {
                System.out.println("此三角形为直角三角形,面积为:" + area);
            }
        } else {
            System.out.println("你输入的三条边无法构成三角形");
        }
    }

abc你不排序直接比较吗

你可以看一下你4 6 9 相加除以3 最后得到的平均数结果为9 在temp计算时 出现了9-9结果为0乘与任何数都是0最后给到temp里结果是0 所以最后结果为0
你要计算平均数可以用(a+b+c)/2.0并且用double类型接受 这样得到的平均数更精确结果不会为9