1
    <!DOCTYPE html>
<html>
<head>
    <title>Find the 2nd Highest and Lowest</title>
    <script>
    function findthenum() {


        var num1 = parseFloat(document.findthenumber.num1.value);
        var num2 = parseFloat(document.findthenumber.num2.value);
        var num3 = parseFloat(document.findthenumber.num3.value);
        var num4 = parseFloat(document.findthenumber.num4.value);
        var num5 = parseFloat(document.findthenumber.num5.value);

        var myArray[num1, num2, num3, num4, num5];


        findsecondlargest(myArray);
    }

    function findsecondlargest(arr)
    {


    var fLargeNum = 0;
    var sLargeNum = 0;

    for(var i=0; i<arr.length; i++){
        if(fLargeNum < arr[i]){
            sLargeNum = fLargeNum;
            fLargeNum = arr[i];         
        }else if(sLargeNum < arr[i]){
            sLargeNum = arr[i];
        }
    }

    print(sLargeNum);

}
  function print(largenum){
    document.write(largenum);
  }




    </script>
</head>
<body>
<form method="post" name="findthenumber">
<p>Enter number 1:<input type="number" name="num1"></p>
<p>Enter number 2:<input type="number" name="num2"></p>
<p>Enter number 3:<input type="number" name="num3"></p>
<p>Enter number 4:<input type="number" name="num4"></p>
<p>Enter number 5:<input type="number" name="num5"></p>
<button type="submit" onclick="findthenum()">Submit</button>
</form>
</body>
</html>

What I'm doing is that the user will input 5 numbers and the function will find the second largest number using array but it is not printing.

I am having a problem passing the user input to the array. I am not quite sure if I am doing the right thing doing this "var myArray[num1, num2, num3, num4, num5]; "

2
  • 1
    It should be var myArray = [num1, num2, num3, num4, num5];. (I didn't bother checking your actual algorithm.) Commented Aug 14, 2017 at 3:08
  • let myArray = [num1, num2, num3, num4]; Commented Aug 14, 2017 at 3:09

3 Answers 3

0

Use an equals sign to assign the values to your array:

var myArray = [num1, num2, num3, num4, num5];
Sign up to request clarification or add additional context in comments.

Comments

0

You can set your array like this:

var myArray = [num1,num2,num3,num4,num5];

This link will help you understand about declaring arrays.

Comments

0

In this line:

var myArray[num1, num2, num3, num4, num5];

you are not defining the array. To do this use an equal sign between the name and the value of the variable.

    function findthenum() {


        var num1 = parseFloat(document.findthenumber.num1.value);
        var num2 = parseFloat(document.findthenumber.num2.value);
        var num3 = parseFloat(document.findthenumber.num3.value);
        var num4 = parseFloat(document.findthenumber.num4.value);
        var num5 = parseFloat(document.findthenumber.num5.value);

        var myArray = [num1, num2, num3, num4, num5];


        findsecondlargest(myArray);
    }

    function findsecondlargest(arr){
       var fLargeNum = 0;
       var sLargeNum = 0;
   
       for(var i=0; i<arr.length; i++){
           if(fLargeNum < arr[i]){
               sLargeNum = fLargeNum;
               fLargeNum = arr[i];         
           }else if(sLargeNum < arr[i]){
               sLargeNum = arr[i];
           }
       }

       print(sLargeNum);

    }
    function print(largenum){
         alert(largenum);
    }
<body>
<form method="post" name="findthenumber">
<p>Enter number 1:<input type="number" name="num1"></p>
<p>Enter number 2:<input type="number" name="num2"></p>
<p>Enter number 3:<input type="number" name="num3"></p>
<p>Enter number 4:<input type="number" name="num4"></p>
<p>Enter number 5:<input type="number" name="num5"></p>
<button type="submit" onclick="findthenum()">Submit</button>
</form>
</body>

As a more general solution I added a bubble sort function to find any position of array.

    function findthenum() {


        var num1 = parseFloat(document.findthenumber.num1.value);
        var num2 = parseFloat(document.findthenumber.num2.value);
        var num3 = parseFloat(document.findthenumber.num3.value);
        var num4 = parseFloat(document.findthenumber.num4.value);
        var num5 = parseFloat(document.findthenumber.num5.value);
        var pos = parseFloat(document.findthenumber.pos.value);

        var myArray = [num1, num2, num3, num4, num5];


        findByIndex(myArray, pos);
    }

    function findByIndex(arr, pos){
        bubbleSort(arr);
        alert(arr[pos]);
    }

    function bubbleSort(a){
        var swapped;
        do {
            swapped = false;
            for (var i=0; i < a.length-1; i++) {
                if (a[i] > a[i+1]) {
                    var temp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = temp;
                    swapped = true;
                }
            }
        } while (swapped);
    }
<body>
<form method="post" name="findthenumber">
<p>Enter number 1:<input type="number" name="num1"></p>
<p>Enter number 2:<input type="number" name="num2"></p>
<p>Enter number 3:<input type="number" name="num3"></p>
<p>Enter number 4:<input type="number" name="num4"></p>
<p>Enter number 5:<input type="number" name="num5"></p>
<p>Position:<input type="number" name="pos"></p>
<button type="submit" onclick="findthenum()">Submit</button>
</form>
</body>

Note that we are counting starting from 0, as arrays indexes.

2 Comments

Thank you sir! But can you help me because in this code. When finding the second lowest number. When i change the inside of the array. It shows zero
I don't understand your question. Can you be more specific?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.