我知道这段代码错了。我是初学者,所以请耐心等待。
我需要找到最低的奇数,但无论输入什么数字,它都会保持为零。我需要初始化'最低',但我如何/在哪里初始化它?
最低= 0导致问题,但我不确定在哪里初始化最低
class Odd
{
public static void main(String[] args)
{
int number; //the number entered by the user
int input; //the amount of numbers to be entered by the user
int index;
int lowest = 0; //lowest odd number
System.out.println("How many numbers? ");
input = EasyIn.getInt();
for (index = 1; index <= input ; index ++)
{
System.out.println("Enter number " + index + ":" );
number = EasyIn.getInt();
if ((number % 2 == 1) && (number < lowest))
{
lowest = number;
}
}
System.out.println("The lowest odd number entered was " + lowest);
}
}
答案 0 :(得分:6)
如果您确定输入不为空,则解决方案是将lowest
初始化为big enough value:
int lowest = Integer.MAX_VALUE;
这种方式所有值都会更小,因此lowest
将是您输入的值之一。
答案 1 :(得分:4)
您从0
开始,因此您不会获得更大的值。如果你这样开始
int lowest = Integer.MAX_VALUE;
对于正数,(n%2)也只有1。如果您想测试您想要的奇数负数(n & 1) != 0
注意:Integer.MAX_VALUE是一个奇数,所以即使这是唯一的值,它也是最大值。但是,如果您希望能够区分输入此值的某个值与没有奇数值之间的区别,则可以使用此值。
long lowest = Long.MAX_VALUE;
这将允许您区分输入的Integer.MAX_VALUE与没有值之间的区别,因为Long.MAX_VALUE要高得多。
答案 2 :(得分:1)
您将最低值初始化为0,然后查找低于它的数字(和奇数)。
我将其初始化为EasyIn.getInt(),因此它是列表中要检查的第一个数字。