Java 如何在不使用数组的情况下从用户输入的一系列整数中返回最大数?
今天早些时候,我学习了如何创建自己的方法,我们的讲师让我创建一个Java程序,该程序将提示用户输入他想要输入的数字数量(计数器,如果您愿意的话),以及数字本身(受设置的所述计数器的限制)。然后,控制台将显示输入的所有数字中的最大数字。我想知道在不使用数组的情况下是否可以实现这一点(当然,不考虑难度;我只想通过先学习这一点来更好地欣赏数组) 这是我到目前为止提出的代码,但它不会运行,因此我非常确定它是错误的,而且与正确答案相差甚远:Java 如何在不使用数组的情况下从用户输入的一系列整数中返回最大数?,java,methods,do-while,Java,Methods,Do While,今天早些时候,我学习了如何创建自己的方法,我们的讲师让我创建一个Java程序,该程序将提示用户输入他想要输入的数字数量(计数器,如果您愿意的话),以及数字本身(受设置的所述计数器的限制)。然后,控制台将显示输入的所有数字中的最大数字。我想知道在不使用数组的情况下是否可以实现这一点(当然,不考虑难度;我只想通过先学习这一点来更好地欣赏数组) 这是我到目前为止提出的代码,但它不会运行,因此我非常确定它是错误的,而且与正确答案相差甚远: import java.util.Scanner; public
import java.util.Scanner;
public class Largest {
public static void main(String[] args) {
Scanner input=new Scanner (System.in);
int ctr=0;
int list=0;
double nums=0;
System.out.println("How many numbers would you like to enter?");
ctr=input.nextInt();
System.out.println("Enter the " + ctr + " numbers to determine which is the largest: ");
do
{
nums=input.nextDouble();
list++;
} while (list!=ctr);
System.out.println("The largest among the " + ctr + " numbers is " + largest(nums));
}
public static double largest (double nums)
{
double maxValue = Double.MIN_VALUE;
if (nums > maxValue){
maxValue = nums;
}
return maxValue;
}
}
目前,我的想法已经没有了。请理解,我对Java非常陌生,我所知道的只是我在网上读到的东西。我在网上找不到太多关于这个特定项目的信息,所以任何形式的帮助都将不胜感激
基本上,这就是我希望控制台在输出时的样子:
How many numbers would you like to enter?
5
Enter the 5 numbers to determine which one is the largest:
4
8
2
10
5
The largest among the 5 numbers is 10.
提前谢谢
编辑:
我已经更新了上面的代码,除了显示的数字总是最后输入的数字,而不一定是序列中的最大数字之外,其他一切都很正常。在任何人询问之前,我想尝试调用我在这个程序中创建的一个方法,因此,如果这个代码可以在不必去掉公共静态双最大值(double nums)的情况下修复,那就太棒了。试试这个:
double largest = Double.MIN_VALUE;
do
{
nums=input.nextDouble();
if (nums > largest)
largest = nums;
list++;
} while (list!=ctr);
如果您要一个接一个地获取数字,您只需要存储到目前为止的最大数字。不需要阵列 不要将数字添加到do循环中的列表中,只需将新数字与maxValue进行比较即可
如果不想使用数组,请执行以下操作:
最大的
=-∞ 李>
x
x>最大
设置max=x
把这个翻译成Java,你就完成了。你确定
list=list+nums
是您要键入的内容吗?如果您想获得发布的确切输出,您需要将数字存储在某个位置,以便稍后打印。因此,您需要一个数组。还有很多{
和}
在错误的位置。@Danny啊,是的,这可能就是它没有运行的原因。谢谢你指出这一点!如何才能做到这一点?