主题:[讨论]请问这个程序哪里出错了?
天使的影子
[专家分:0] 发布于 2007-11-28 12:18:00
/*讲下列函数转换为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个回复)
沙发
chm51666 [专家分:240] 发布于 2007-11-28 13:59:00
你自己定义的类名怎么可以取成Math????随便换个类名就可以了 ~~
板凳
happyboy2007 [专家分:3900] 发布于 2007-11-28 15:48:00
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 楼
天使的影子 [专家分:0] 发布于 2007-11-28 18:35:00
还是不对啊,
好多找不到符号
4 楼
chm51666 [专家分:240] 发布于 2007-11-28 20:14:00
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 楼
天使的影子 [专家分:0] 发布于 2007-11-28 20:16:00
这个是正确的。
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 楼
chm51666 [专家分:240] 发布于 2007-11-28 20:36:00
我是按照你的程序改的~~把类名换了当然构造方法也得跟着变 创建对象类型肯定也得变 按我发给你的代码运行肯定没问题~~~
7 楼
happyboy2007 [专家分:3900] 发布于 2007-11-29 08:49:00
[quote]还是不对啊,
好多找不到符号[/quote]
把我的代码复制到你的机器上就完全可以运行。
如果还是不行,就是你的编译器有问题了。
我来回复