我正在尝试制作一个程序,根据所有三个边的值计算三角形的面积。当我用我的跑步者文件运行我的程序时,我的区域出现“0.0”
这是类完整代码(我也知道我为setSides和三角形做了相同的代码,但是我的导师给了我们这个shell,我不知道该放在那里)
import java.util.Scanner;
import java.lang.Math.*;
public class Triangle
{
private int sideA;
private int sideB;
private int sideC;
private double theArea;
private double s;
private double perimeter;
public Triangle()
{
sideA = 1;
sideB = 1;
sideC = 1;
}
public Triangle(int a, int b, int c)
{
sideA = (int) a;
sideB = (int) b;
sideC = (int) c;
}
public void setSides(int a, int b, int c)
{
sideA = (int) a;
sideB = (int) b;
sideC = (int) c;
}
private double calcPerimeter()
{
double perimeter = sideA + sideB + sideC;
return perimeter;
}
private double calcArea()
{
double s = calcPerimeter() / 2;
double theArea = (Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC)));
return theArea;
}
public void print()
{
System.out.println("Area == " + theArea);
}
}
答案 0 :(得分:2)
我在你的陈述中做了一个系统。您使用的不是减法运算符。请解决这个问题。它会工作。同时定义permiter
。
System.out.println((int)'–');
输出:
8211
答案 1 :(得分:1)
您是否有可能从不是简单文本文档的文档中复制了一些源代码?
如果是这样,那么你的问题是你的减号不是正确的字符。尝试在文本编辑器中重新键入它们。
ED:此外,减号应该用空格包围。当我第一次看到这个时,它就把我扔了。
在您修改后的代码中,您可以将负数作为负数,这可能会通过您处于非常糟糕的状态。
答案 2 :(得分:0)
卸下:
private double perimeter;
并改变:
private double calcArea()
{
double s = perimeter / 2;
double theArea = (Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC)));
return theArea;
}
要:
private double calcArea()
{
double s = calcPerimeter() / 2;
double theArea = (Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC)));
return theArea;
}
以下是发生的事情。你声明一个名为perimeter的私有双。稍后在代码中,您再次声明一个称为外围的双重。当你这样做时,事情变得非常混乱!确保只声明具有相同名称的变量ONCE,然后引用它们。