-1

i seem to be having trouble figuring out what to set the variable intValue to under the read value methods. The program is supposed to take 10 integers and average them, it works fine as far as catching exceptions and input, but the output displays all the numbers as 0 (because i set it to 0 temporarily but can not figure out what to change it to). Heres the code package averagenumdriver;

import static java.lang.Integer.parseInt;
import java.util.Scanner;

public class AverageOfIntegers {
   //Declare variables
   private int numberOfValues;
   private int[] integerValues;
   private double average;

   public AverageOfIntegers(int numberOfValues){
   this.numberOfValues = numberOfValues;

   }
   //Define the readValues()
   public void readValues(){
   String stringValue = null;
   int intValue = 0, i;
   Scanner console = null;
   i = 0;
   integerValues = new int[numberOfValues];
      while(i < numberOfValues){
         try
         {
            console = new Scanner(System.in);
            System.out.print("Enter value : ");
            //read the value
            stringValue = console.nextLine();
            //check for number
            intValue = 0;
            parseInt(stringValue);
            //Store only integer values
            integerValues[i++] = intValue;
         }
         catch(NumberFormatException ex)
         {
            //Catch exception and handle it
            System.out.println("Invalid Number entered" + "Reenter again ");
            continue;
         }
         }
         }
   //read integer values
         public void printValues()
         {
            System.out.println("Given values are ");
            for (int i = 0; i < numberOfValues; i++)
            {
               System.out.println("Number: " + (i + 1) + " = " + 
integerValues[i]);

            }
         }
         public double getAverage()
         {
            int sum = 0;
            //Calcualte the sum of integer values
            for (int i = 0; i < numberOfValues; i++)
            {
               sum += integerValues[i];
            }
            //calculate average 
            average = (double)sum / numberOfValues;
            return(average);

         }
      }

EDIT* question seems to be marked as a duplicate, but I am not asking about why division with two integers where the denominator is greater than numerator yields a 0.

1 Answers1

0

Change

        //check for number
        intValue = 0;
        parseInt(stringValue);

TO

        //check for number
        intValue = parseInt(stringValue);
Hello World
  • 103
  • 7