为身份sin²+cos²= 1写一个计算器

时间:2015-07-02 06:24:15

标签: math trigonometry

这是我写的:

public class Math {
  public static void main (String[] args){
    double degrees = Double.parseDouble(args[0]);
    double s = Math.sin(degrees);
    double c = Math.cos(degrees);
    double x = s*s + c*s;
    System.out.println(x);
  }
}

我想输入一个args[0]sin()的数字cos()。然后我想添加2个变量使它等于1,因为sin² + cos² = 1。我做错了什么?

编辑:我将代码更改为s*s + c*c,但我仍然遇到同样的错误。

我也遇到了这个错误:

2 errors found:
File:...  [line: 4]
Error: cannot find symbol
  symbol:   method sin(double)
  location: class Math
File:...  [line: 5]
Error: cannot find symbol
  symbol:   method cos(double)
  location: class Math

2 个答案:

答案 0 :(得分:3)

您没有对每个术语进行平方,因此您正在计算和打印sin(x) + cos(x)。取代

double x = s + c;

double x = s*s + c*c;

你应该得到正确的行为。

答案 1 :(得分:1)

以下列出了我看错了:

  • 您的班级名为Math,但您使用MathMath.sin() - >来引用系统Math.cos()。重命名你的班级以避免歧义
  • 您定义double x = s*s + c*s;,当然应该是double x = s*s + c*c;
  • 您希望Math.cos()Math.sin()中获取参数,而他们实际上期望 radians 。它恰好工作,因为身份适用于任何输入,但请记住这为你的下一个任务:)