用于打印用户输入的两个最大数字的java程序

时间:2016-07-21 20:58:41

标签: while-loop counter

每当我运行编译的代码时,它会显示最大的数字,但它没有正确显示第二大数字。这是我的代码:

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);



}

}

我做错了什么?我重读并阅读了这段代码,但我无法找出错误是什么。

1 个答案:

答案 0 :(得分:0)

在while循环开始之前删除num = input.nextInt()。

调用初始输入,然后在调用while方法中的“first”输入后立即调用。

其他一些技巧,通常用于定义的循环长度(在本例中为5),你可以使用for循环来显示你的意图。

你也可以增加计数器:counter ++;或者计数器+ = 1;

假设你的程序的意图是要求5个输入数,然后显示最大的两个,这应该都有帮助。希望它能做到。