每当我运行编译的代码时,它会显示最大的数字,但它没有正确显示第二大数字。这是我的代码:
package twoLargestNumbers;
import java.util.Scanner;
//find two largest numbers
public class twoLargestNumbers {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int num;
int counter=0;
int largest=0;//largest
int second=0;//second largest
System.out.println("Enter number:");
num=input.nextInt();
while(counter<5){
num=input.nextInt();
if(num>largest){
second=largest;//store largest to second largest
largest=num;//store largest to inputted number
}
else{
if(num>second)
second=num;//store second number to inputed number
}
counter=counter+1;
}
System.out.println("largest number is "+largest);
System.out.println("and second largest number is "+second);
}
}
我做错了什么?我重读并阅读了这段代码,但我无法找出错误是什么。
答案 0 :(得分:0)
在while循环开始之前删除num = input.nextInt()。
调用初始输入,然后在调用while方法中的“first”输入后立即调用。
其他一些技巧,通常用于定义的循环长度(在本例中为5),你可以使用for循环来显示你的意图。
你也可以增加计数器:counter ++;或者计数器+ = 1;
假设你的程序的意图是要求5个输入数,然后显示最大的两个,这应该都有帮助。希望它能做到。