'java program for printing the two largest numbers a user inputs

Whenever I run my compiled code, it displays the largest number but it doesn't display the second largest number correctly. Here is my code:

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



}

}

What am I doing wrong? I reread and read this code and I cannot find out what the error is.



Solution 1:[1]

Remove the num=input.nextInt() before the while loop starts.

The initial input is being called and then straight away after the "first" input in the while method is called.

A couple of other tips, usually for a defined length of loop (in this case, 5) you would use a for loop to show your intent a bit more.

Also you can increment counter doing: counter++; or counter += 1;

Assuming the intent of your program is to ask for 5 numbers of input and then display the largest two, that should all help. Hope it did.

Solution 2:[2]

Also I don't think this block of code is needed, the second largest is already being stored in the first if statement. else{

    if(num>second)
        second=num;//store second number to inputed number
    }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 lozzajp
Solution 2 user18075504