Java 利用数学课进行计算

Java 利用数学课进行计算,java,math,Java,Math,编写一个JAVA程序计算圆柱体的表面积,C=2(πr2)+2πRh,其中r是圆柱体的半径,h是圆柱体的高度。允许用户输入半径和高度。将输出格式化为小数点后三位。使用Math类中的常量PI和方法pow() 这是我到目前为止所做的,但它无法运行。有人能帮我吗 import Java.util.Scanner; public class Ex5 { public static void main (String[] args) { Scanner input=new S

编写一个JAVA程序计算圆柱体的表面积,C=2(πr2)+2πRh,其中r是圆柱体的半径,h是圆柱体的高度。允许用户输入半径和高度。将输出格式化为小数点后三位。使用Math类中的常量PI和方法pow()

这是我到目前为止所做的,但它无法运行。有人能帮我吗

import Java.util.Scanner;

public class Ex5 {

    public static void main (String[] args)
    {
      Scanner input=new Scanner(System.in);
      double radius,height,area;
      System.out.print("Please enter the radius of the Cylinder");
      radius = input.nextDouble();
      System.out.print("Please enter the height of the Cylinder");
      height = input.nextDouble();
      area = (4*Math.PI*radius)+2*Math.PIMath.POW(radius,2);
      System.out.println("The surface of the cylinder" + area);  
    }
}

如果这是源代码,那么这里有很多问题

首先,行:

2*Math.PIMath.POW
您忘记在PI和Math之间添加星号,因此编译器将
PIMath
视为一个符号。 最好用括号来说明这一点:

2*(Math.PI)*(Math.pow(radius, 2))
请注意,
Math.PI
是一个静态引用常量<另一方面,code>Math.pow是一种方法

Java中的所有标识符都区分大小写
Math.pow
存在,而
Math.pow
不存在


另外,我注意到您根本没有使用高度变量,因此您的公式计算是不正确的。

出于个人喜好,我倾向于在相关陈述中添加paren。它使代码更具可读性,并有助于以后的调试

我认为错误在于:

area = (4*Math.PI*radius)+2*Math.PIMath.POW(radius,2);
我会改为:

area = (2 * Math.PI * Math.pow(radius, 2)) + (2 * Math.PI * radius * height);
原文中有一个输入错误:Java区分大小写,因此Math.POW()在编程上与Math.POW()不同。此外,不能通过串联命令进行乘法;相反,你必须在它们之间加一个星号


这应该可以让它编译。

这可能只是一个输入错误,但您似乎要么复制了错误的代码,要么键入了错误的代码。你有电话吗

area = (4*Math.PI*radius)+2*Math.PIMath.POW(radius,2);
注意这个部分

*Math.PIMath
你需要在圆周率和数学之间有一个*

另外,作为将来的参考,您是否知道可以将这一行添加到代码的顶部:

import static java.lang.Math.*;
完成后,您可以将该行更改为:

area = (4*PI*radius)+2*PI*POW(radius,2);

再说一次,有些人可能不喜欢这样。但是我认为直接导入几行这样的代码会更好。

您可以通过替换
radius*radius
来省去使用
Math.pow()
。更好的是,从a的面积公式中取因子2πr。例如,A=2πr2+2πrh=2πr(r+h)


最可能的问题是代码中计算面积的部分。编程是非常文字化的,所以当Math.PI和Math.POW(radius,2)之间没有空格时,会导致错误。在人眼看来,它们似乎是两个不同的表达式,但编译器将其视为一个,因为它没有被告知其他内容。只需在Math.PI和Math.POW(radius,2)之间添加一个*就可以解决您的问题。

请添加您收到的错误消息。我看到一些东西看起来像是打字错误,但我宁愿教你理解错误,也不愿为你回答问题。谢谢你的关心。你能帮我找到这个问题的正确答案吗。如果我有正确的答案,我可以自己理解。非常感谢。@LC-我认为你错了。在我看来,如果你努力发现并纠正自己的错误,你将学会如何更好地编程,而不是简单地用勺子喂你正确的答案。编程是理解你在做什么,而不仅仅是学习正确的答案。我认为他需要在表达式的第二部分添加*高度,否则这个圆柱体将是一个双面圆盘。
double area = 2 * Math.PI * radius * (radius + height);