我的代码输出不正确

时间:2015-09-21 12:44:34

标签: java syntax-error invalid-characters

我正在尝试制作一个程序,根据所有三个边的值计算三角形的面积。当我用我的跑步者文件运行我的程序时,我的区域出现“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); 
 }
}

3 个答案:

答案 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,然后引用它们。