【问题标题】:How can we solve NaN conflict in java?我们如何解决java中的NaN冲突?
【发布时间】:2021-06-17 20:55:00
【问题描述】:

`java

//5.   Write a program to read three sides of triangle and print area for valid data and to print “Invalid data”
// if either one side of the triangle is greater or equals to the sum of other two sides.
package com.company;
import java.util.Scanner;
import java.lang.Math;
public class EX_05 {
    public static void main(String[] args) {
        Scanner n = new Scanner(System.in);
        System.out.println("Enter three sides of a triangle : ");
        double a = n.nextDouble();
        double b = n.nextDouble();
        double c = n.nextDouble();
        double s = (a+b+c)/2;
        if((a>=(b+c)) || (b>=(a+c)) || (c>=(b+a)) ){
            double area = Math.pow((s * (s - a) * (s - b) * (s - c)), 0.5);
            System.out.println("The area of triangle is " + area + ".");
        }
        else {
            System.out.println("Invalid data");
        }
    }
}

` 我想判断三角形的边是否有效来计算三角形的面积。

这是 IDE 显示的输出。

【问题讨论】:

  • 您好,欢迎您。请edit您的问题包括您的源代码和输出作为文本而不是图片。
  • 不相关但Math 有一个完美工作的sqrt 方法
  • 很明显,一个三角形(在欧几里得空间中)不能有边长为 10、5 和 2。
  • 就像@Srikanth Chakravarthy 所说,您的条件必须从 > 更改为
  • 请用这些边长给我画一个三角形,然后告诉我面积应该是多少。提示:en.wikipedia.org/wiki/Triangle_inequality

标签: java math nan


【解决方案1】:

你的条件,检查边是否形成一个有效的三角形,是错误的。请更正这一点,你应该得到一个适当的面积值。

【讨论】:

  • 可能有人认为您的回复超出范围
  • 不是我的反对意见,但您的回答如此简短以至于变得迟钝(双关语!)。也许更多解释会有所帮助。
  • 这是我的错误,感谢你们的时间。
【解决方案2】:

看起来你的情况倒转了。如果数据无效,则始终执行计算,如果数据有效,则始终打印“无效数据”。

你应该把你在 else 里的东西换成你在 if 里的东西。

另一种选择是添加一个!在整个条件面前。 还有一种方法是颠倒整个条件的逻辑。

除此之外,您的问题的标题与实际问题完全无关。并且请不要粘贴代码图像。他们讨厌堆栈溢出。在您自己的机器上重新键入某人的所有错误代码只是为了帮助他们找到问题,这并不有趣。发布代码本身,以便轻松复制和测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2011-04-17
    • 2011-05-12
    • 2018-05-15
    • 2012-01-09
    • 2016-02-22
    相关资源
    最近更新 更多