[英]Smallest and Largest numbers
好的,我知道有几个与此问题类似的话题,但是我似乎找不到关于它们的答案。 其他人都在做与我相同的事情,但是他们的代码有效:
这是所需的输出:
How many numbers do you want to enter?
4
Enter a number:5
Enter a number:11
Enter a number:-2
Enter a number:3
Highest number is: 11
Lowest number is: -2
这是我的代码:
public static void smallestLargest(){
int highest=Integer.MIN_VALUE;
int lowest=Integer.MAX_VALUE;
int num=0;
Scanner sL = new Scanner(System.in);
System.out.println("How many numbers do you want to enter?");
int nums = sL.nextInt();
for(int i=0; i<nums; i++){
System.out.print("Enter a number:");
num = sL.nextInt();
}
if (num > highest){
num = highest;
}
if(num < lowest){
num = lowest;
}
System.out.println("Highest number is: " + highest);
System.out.println("Lowest number is: " + lowest);
}
这是我得到的输出:
How many numbers do you want to enter?
4
Enter a number:5
Enter a number:11
Enter a number:-2
Enter a number:3
Highest number is: -2147483648
Lowest number is: 2147483647
我让我的朋友在teamviewer上尝试提供帮助,因为他在这方面的能力比我强,但我们两个人都很沮丧。 谢谢你的帮助。
而不是num = highest
您应该执行highest = num
同样的东西最低。
而且两个if
都应该在for
循环内(必须对输入的每个数字都进行一次处理)
尝试阅读您的程序流程。 基本上,您想一次读取一个Int,然后确定所读取的数字是到目前为止所看到的最高数字还是最低的数字。
您的条件分支应该位于for循环内。
for(...) {
//read value
//if num > highest, then highest = num
//if num < lowest, then lowest = num
}
//print output, etc.
您的代码的问题是这些行就在这里。
if (num > highest){
num = highest;
}
if(num < lowest){
num = lowest;
}
如果if(num> maximum)为true,则将num设置为最高。 你真正想做的是
if (num > highest){
highest = num;
}
if(num < lowest){
lowest = num;
}
现在,这会将最低和最高设置为正确的数字。 但是,您还需要在代码中设置一个循环,以检查每次用户输入数字时是否需要更新最高和最低值。 以下代码将为您提供正确的输出。
for(int i=0; i<nums; i++){
System.out.print("Enter a number:");
num = sL.nextInt();
if (num > highest){
highest = num;
}
if(num < lowest){
lowest = num;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.