当我执行这个程序时,它打印最大值就好了,但是最小值总是打印到零。我继续挠挠脑袋......谁能看到这里有什么问题?谢谢你的期待。
terminfo
答案 0 :(得分:1)
问题在于,当声明数组时,数组中的int设置为0.将min设置为numbers[0]
会将min设置为0.如果不是你的min,则代码将失败。< / p>
在这种情况下,您不需要数组 - 您可以只存储用户输入的内容。除此之外,只需检查i==0
是否为numbers[0]
,将min和max设置为.class
。 (如果你没有对max做同样的事情,那么所有底片的数组都会失败。)
答案 1 :(得分:0)
这很简单。 min变量永远不会更新,因为每次min&gt; number [i]被评估返回false。我们来看一个例子:
min的值为: -8.9
使用Java 8,您可以使用lambdas轻松获得最大值和最小值:
max = Arrays.stream(numbers).max().getAsDouble();
min = Arrays.stream(numbers).min().getAsDouble();
答案 2 :(得分:0)
正如其他答案所述,问题是numbers[0]
开始初始化为0
,因此无论用户输入的数字如何,您的代码仍然会找到{ {1}}为最小值。
您需要的是一个额外的状态来表示“我还没有任何最小值”。您可以使用额外的0
变量来表示此状态,或者如果您可以使用boolean
包装类型,则可以使用Integer
。
例如:
null