我正在写一个简单的程序来确定一些数学值,但我遇到了一个问题,它要求用户输入立方体边的长度,然后输出表面积(使用math.pow和公式6a^2)。我得到了公式和所有的东西,但也许我输入错了?我一直得到一个不同于我应该得到的答案…
System.out.print ("Please enter the length of a side of your cube: ");
a = in.nextDouble();
System.out.printf ("Surface area of your cube is : %.3fn", Math.pow (6*( a,2 )));
这个问题是关于间距还是什么?它只是不断给我括号的预期错误,但我相信一切看起来都很好。。。我还试图改变一些事情,比如((a,2)*6),我会得到同样的错误答案和预期错误):
~
我遇到的另一件事是,当我要求用户输入两个用空格分隔的数字时,为了用Math.max查找较大的数字,它是有效的,但随后它使用相同的数字来查找较小的数字。我不希望用户使用这些相同的数字,因为我希望他们输入一些其他新数字。。。
System.out.print ("Please enter two numbers separated by spaces: ");
a = in.nextDouble();
System.out.printf("Larger of the first two numbers is %.3fn", Math.max ( a,a ) );
System.out.print ("Please enter two numbers separated by spaces: ");
a = in.nextDouble();
System.out.printf ("Smaller of the first two number is %.3fn", Math.min ( a,a ) );
我是编程新手。非常感谢您的帮助!!
您的代码不正确,Math.pow(base, exponent)
需要两个参数:-
System.out.printf ("Surface area of your cube is : %.3fn", Math.pow (6*( a,2 )));
应该是:-
System.out.printf ("Surface area of your cube is : %.3fn", 6 * Math.pow (a,2) );
而且,为了找到平方,你应该坚持琐碎的概念,即做(a*a)
,而不是选择Math.pow(基数,指数)
[注意->乘法比调用pow()方法更容易]。
当我要求用户输入用空格分隔的两个数字时使用Math.max的较大的一个,它可以工作,但随后它使用相同的数字要求较小的数字。我不希望用户使用这些数字与我希望他们输入的其他新数字相同。。。
首先,这应该是一个单独的问题。但是,即使这样,为了实现同样的目标,你也需要循环的知识,这样你就可以运行一个任务预定义的次数。
由于这个问题很简单,在计算完max()之后,您可以在下面要求更多的doubles。但是,这会有些复杂。我建议你循序渐进。按照书本/教程的顺序进行操作。
6a^2
这意味着CCD_ 3的平方的六倍。
Math.pow (6*( a,2 )
这毫无意义。它甚至不是有效的语法。您需要:
6*Math.pow (a,2 )
或者更简单地说
6*a*a
对于您提出的第二个问题,我建议您将用户输入的数字放入HashSet
中,然后使用contains
方法检查用户输入的数据以前是否使用过。您可以在这里查看HashSet
的参考资料。