pta题目7-11 判断三角形类型 (20 分)

输入格式:

在一行中输入三角形的三条边的值(实型数),可以用一个或多个空格或回车分隔,其中三条边的取值范围均为[1,200]。

输出格式:

(1)如果输入数据非法,则输出“Wrong Format”; (2)如果输入数据合法,但三条边不能构成三角形,则输出“Not a triangle”; (3)如果输入数据合法且能够成等边三角形,则输出“Equilateral triangle”; (3)如果输入数据合法且能够成等腰直角三角形,则输出“Isosceles right-angled triangle”; (5)如果输入数据合法且能够成等腰三角形,则输出“Isosceles triangle”; (6)如果输入数据合法且能够成直角三角形,则输出“Right-angled triangle”; (7)如果输入数据合法且能够成一般三角形,则输出“General triangle”。

 

 

我的代码是

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double l1 = in.nextFloat();
        double l2 = in.nextFloat();
        double l3 = in.nextFloat();
        if(l1>=1&&l1<=200&&l2>=1&&l2<=200&&l3>=1&&l3<=200)
        {
        double l4 = 0;
        if (l1 > l3)
        {
            l4 = l3;
            l3 = l1;
            l1 = l4;
        }
        if (l2 > l3)
        {
            l4 = l3;
            l3 = l2;
            l2 = l4;}
        if (l1 > l2)
        {
            l4 = l2;
            l2 = l1;
            l1 = l4;
        }
        if (l1 + l2 > l3) {
            if (l1 == l2 && l2 == l3 )
                System.out.println("Equilateral triangle");//等边三角形

            else if (l1==l2 && l1 * l1 + l2 * l2 - l3 * l3 < 0.000001 && l1 * l1 + l2 * l2 - l3 * l3 > 0 ){
                        System.out.println("Isosceles right-angled triangle");//等腰直角三角形
                    }
            else if(l3==l2||l3==l1||l1==l2)
                    {
                        System.out.println("Isosceles triangle");
                    }//等腰三角形
            else if (l1 * l1 + l2 * l2 - l3 * l3 < 0.000001 && l1 * l1 + l2 * l2 - l3 * l3 > 0) {
                    System.out.println("Right-angled triangle");//直角三角形
                    }
            else
                        System.out.println("General triangle");//一般三角形
        }
        else
        {
            System.out.println("Not a triangle");
        }
        }
        else
        {
            System.out.println("Wrong Format");
        }
    }

}


错了一个测试点,也不明白为什么,还请各位大佬帮帮小弟

你这上面的if语句是做什么用的哦,l4是用来做什么的?

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double l1 = in.nextFloat();
        double l2 = in.nextFloat();
        double l3 = in.nextFloat();
        if (l1 >= 1 && l1 <= 200 && l2 >= 1 && l2 <= 200 && l3 >= 1 && l3 <= 200) {
            double l4 = 0;
            if (l1 > l3) {
                l4 = l3;
                l3 = l1;
                l1 = l4;
            }
            if (l2 > l3) {
                l4 = l3;
                l3 = l2;
                l2 = l4;
            }
            if (l1 > l2) {
                l4 = l2;
                l2 = l1;
                l1 = l4;
            }
            if (l1 + l2 > l3) {
                if (l1 == l2 && l2 == l3)
                    System.out.println("Equilateral triangle");// 等边三角形

                else if (l1 == l2 && Math.pow(l1,2)+Math.pow(l2,2)==Math.pow(l3,2)||Math.pow(l1,2)+Math.pow(l3,2)==Math.pow(l2,2)||Math.pow(l3,2)+Math.pow(l2,2)==Math.pow(l1,2)) {
                    System.out.println("Isosceles right-angled triangle");// 等腰直角三角形
                } else if (l3 == l2 || l3 == l1 || l1 == l2) {
                    System.out.println("Isosceles triangle"); // 等腰三角形
                } else if (Math.pow(l1,2)+Math.pow(l2,2)==Math.pow(l3,2)||Math.pow(l1,2)+Math.pow(l3,2)==Math.pow(l2,2)||Math.pow(l3,2)+Math.pow(l2,2)==Math.pow(l1,2)) {
                    System.out.println("Right-angled triangle");// 直角三角形
                } else
                    System.out.println("General triangle");// 一般三角形
            } else {
                System.out.println("Not a triangle");
            }
        } else {
            System.out.println("Wrong Format");
        }
    }

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y