回 帖 发 新 帖 刷新版面

主题:[讨论]请问这个程序哪里出错了?

/*讲下列函数转换为Java方法,并根据输出结果,编写程序
f(x)=cos(x)*Sin(x)*x2
g(x)=log(x10)*cos(sin(x))
运行结果提示
f(1.2)=0.486.....
g(1.2)=1.086...*/
import java.lang.Math.*;
class Math
{
   public static  double m=1.2;
   public static double d1(double m)
   {
        return Math.cos(m)*Math.sin(m)*Math.pow(m,2);
   }
   public static double d2(double m1)
   {
              double t=0.0,r=0.0;
           t=Math.pow(m1,10);
                  r=Math.sin(m1);
           return Math.log(t)*Math.cos(r);
   }
   public static void main(String[] args)
   {
  Math f=new Math();
  Math h=new Math();
       System.out.println("f("+m+")="+f.d1(m));
       System.out.println("g("+m+")="+h.d2(m));
   }
}
我不知道哪里出错了?

回复列表 (共7个回复)

沙发

你自己定义的类名怎么可以取成Math????随便换个类名就可以了  ~~

板凳

1 java.lang.Math 为编译器自动载入。
2 自定义类名不能与编译器已经导入类名相同。
3 静态方法需要用类名访问。

class MyMath
{
   public static  double m=1.2;
   public static double d1(double m)
   {
        return Math.cos(m)*Math.sin(m)*Math.pow(m,2);
   }
   public static double d2(double m1)
   {
       return Math.log(Math.pow(m1,10))*Math.cos(Math.sin(m1));
   }
   public static void main(String[] args)
   {
       System.out.println("f("+MyMath.m+")="+MyMath.d1(MyMath.m));
       System.out.println("g("+MyMath.m+")="+MyMath.d2(MyMath.m));
   }
}

3 楼

还是不对啊,
好多找不到符号

4 楼

import java.lang.Math.*;
class TestMath
{
   public static  double m=1.2;
   public static double d1(double m)
   {
        return Math.cos(m)*Math.sin(m)*Math.pow(m,2);
   }
   public static double d2(double m1)
   {
              double t=0.0,r=0.0;
           t=Math.pow(m1,10);
                  r=Math.sin(m1);
           return Math.log(t)*Math.cos(r);
   }
   public static void main(String[] args)
   {
  TestMath f=new TestMath();
  TestMath h=new TestMath();
       System.out.println("f("+m+")="+f.d1(m));
       System.out.println("g("+m+")="+h.d2(m));
   }
}

5 楼

这个是正确的。
import java.lang.Math.*;
public class MyMath
{
   public static  double m=1.2;
   public static double d1(double m)
   {
        return Math.cos(m)*Math.sin(m)*Math.pow(m,2);
   }
   public static double d2(double m1)
   {
       return Math.log(Math.pow(m1,10))*Math.cos(Math.sin(m1));
   }
   public static void main(String[] args)
   {
       System.out.println("f("+MyMath.m+")="+MyMath.d1(MyMath.m));
       System.out.println("g("+MyMath.m+")="+MyMath.d2(MyMath.m));
   }
 }

6 楼

我是按照你的程序改的~~把类名换了当然构造方法也得跟着变  创建对象类型肯定也得变  按我发给你的代码运行肯定没问题~~~

7 楼

[quote]还是不对啊,
好多找不到符号[/quote]

把我的代码复制到你的机器上就完全可以运行。
如果还是不行,就是你的编译器有问题了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册