☜贼鸡儿菜! 2020-03-16 13:30 采纳率: 100%
浏览 573
已采纳

java萌新求助(三角形形状判断问题有个测试点死活过不了)

输入格式:
在一行中输入三角形的三条边的值(实型数),可以用一个或多个空格或回车分隔,其中三条边的取值范围均为[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.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
float a=sc.nextFloat(),b=sc.nextFloat(),c=sc.nextFloat();
if(a>=1&&a<=200&&b>=1&&b<=200&&c>=1&&c<=200)
{
if(a+b>c&&a+c>b&&c+b>a)
{
if(a==b&&b==c)
System.out.println("Equilateral triangle");

                else if((a==c||b==c||a==b)&&(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a))
                System.out.println("Isosceles right-angled triangle");

                else if(a==c||b==c||a==b)
                System.out.println("Isosceles triangle");

                else if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)
                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");
}

}
跪求大佬们指出小弟的问题所在

  • 写回答

5条回答 默认 最新

  • console.log( ) 2020-03-16 13:47
    关注

    我建议你先把三条边从小到大排序,这样代码简洁点
    假如 abc 从小到大
    一般三角形 a+b>c 这是大前提条件
    等边三角形 a==b==c
    等腰直角三角形a==b a*a+b*b==c*c
    等腰三角形 a==b
    直角三角形 a*a+b*b==c*c

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况