Pouria Mohseni
Pouria Mohseni

Reputation: 1

When use Scanner for input value to array smallest number not found

With Scanner :

import java.util.Scanner;

public class InputArrayFromScanner {

    private static Scanner keyIn;

    public static void main(String[] args) {
        keyIn = new Scanner (System.in);
        System.out.print("Enter a Number: ");
        int inNum = keyIn.nextInt();
        int [] arrNum = new int [inNum];
        int maxNum = arrNum[0];
        int minNum = arrNum[0];
        int  average = 0;
        int total = 0;
        for (int count : arrNum){
            System.out.print ("> ");
            arrNum[count] = keyIn.nextInt();
            if (arrNum[count] > maxNum)
                maxNum = arrNum[count];
            else if (arrNum[count] < minNum)
                minNum = arrNum[count];
            total += arrNum[count];
            average = total/arrNum.length;
        }
        System.out.print("\tBigest Number is:"+maxNum);
        System.out.print("\tSmallest Number is:"+minNum);
        System.out.print("\tPlus of Numbers is:"+total);
        System.out.println("\tAverage Of Numbers is:"+average);


    }

}

Without scanner

public class MinAndMax {

    public static void main(String[] args) {
        int [] arrNum = {10,12,80,6,5};
        int minNum = arrNum [0];
        int maxNum = arrNum [0];
        for (int count = 0; count < arrNum.length; count++ ){
            if (arrNum[count] < minNum)
                minNum = arrNum[count];
            else if (arrNum[count] > maxNum)
                maxNum = arrNum[count];
        } 
       System.out.print ("\tSmallest Number is "+minNum);
       System.out.print ("\tBigest Number is "+maxNum);
    }

}

Whats is the problem ?

Upvotes: 0

Views: 47

Answers (2)

Siva Kumar
Siva Kumar

Reputation: 2006

You have some logic mistake

import java.util.Scanner;

public class InputArrayFromScanner {

    private static Scanner keyIn;

    public static void main(String[] args) {
        keyIn = new Scanner (System.in);
        System.out.print("Enter a Number: ");
        int inNum = keyIn.nextInt();
        int [] arrNum = new int [inNum];
        int  average = 0;
        int total = 0;

        for (int count = 0;count<inNum;count++){
            arrNum[count] = keyIn.nextInt();
        }

        int maxNum = arrNum[0];
        int minNum = arrNum[0];

        for (int count = 0; count < arrNum.length; count++ ){
            if (arrNum[count] < minNum)
                minNum = arrNum[count];
            else if (arrNum[count] > maxNum)
                maxNum = arrNum[count];
            total += arrNum[count];
            average = total/arrNum.length;
        } 

        System.out.print("\tBigest Number is:"+maxNum);
        System.out.print("\tSmallest Number is:"+minNum);
        System.out.print("\tPlus of Numbers is:"+total);
        System.out.println("\tAverage Of Numbers is:"+average);


    }

}

Try this.

Upvotes: 0

Eran
Eran

Reputation: 393781

In the first snippet you are iterating over the array values with the enhanced for loop :

for (int count : arrNum)

You should be iterating over the array indices :

for (int count = 0; count < arrNum.length; count++)

Upvotes: 1

Related Questions