0
import java.util.Scanner;

public class labAssignment4 {
    public static void main(String[] args){
        Scanner user = new Scanner(System.in);
        //Variables
        double a, b, c;

        System.out.println("Enter longest side: ");
        a = user.nextDouble();
        System.out.println("Enter second side: ");
        b = user.nextDouble();
        System.out.println("Enter third side: ");
        c = user.nextDouble();
        //Help fix code to compute triangle type correctly...

                if (a==b&&b==c)
                {
                    System.out.println("Equilateral Triangle");
                }

                else if (a==b && b==c);
                    {
                        System.out.println("Isoceles Triangle");
                    }
                    if (!((a == b) && (a == c) && (b == c))); 
                    {
                    System.out.println("Scalene Triangle");
                    }
                    if (((a + b) >= (c)) ||((a + b) >= (b)) ||((b +c) >= (a)));
                    {
                        System.out.println("Not a Triangle");
                    }



          } 
    }

帮助正确的公式来计算正确的三角形类型....任何帮助将不胜感激。我需要一些帮助来修改此代码,而且它似乎一直给我一个错误,返回多个结果。结果,我收到我的值等于等腰线、不等边线,而不是三角形值。

4

2 回答 2

0

一个问题是 else 语句后面有一个分号:

 else if (a==b && b==c);//<-- semicolon here

因此,您将始终打印“等腰三角形”

此外,在接下来的两个语句之后有分号if

if (!((a == b) && (a == c) && (b == c))); //<-- semicolon here
{
   System.out.println("Scalene Triangle");
}
if (((a + b) >= (c)) ||((a + b) >= (b)) ||((b +c) >= (a))); //<-- semicolon here
{
   System.out.println("Not a Triangle");
}

这些将导致您的程序打印"Scalene Triangle""Not a Triangle"无论您的if语句中的测试条件是否为真/假。

解决方法很简单:删除分号!

于 2013-07-18T00:59:42.717 回答
0

您的 if 语句有点混乱。需要修复其他的括号,并删除分号。并且成为三角形的条件也需要固定。

if (a==b && b==c) System.out.println("Equilateral Triangle");
    else {
    if ((a==b && b!=c) || (a==c && a!=b)) {
       System.out.println("Isoceles Triangle");
       }
    if (a!=b && b!=c && a!=c) {
       System.out.println("Scalene Triangle");
       }
    if !(((a + b) > c) && ((a + c) > b) && ((b + c) > a)) {
       System.out.println("Not a Triangle");
       }
    }
于 2013-07-18T01:05:44.603 回答