This project deals with EOF-based loops, using the while construct where we do not know the exact number of times a loop will iterate (perform the associated block of code). We will continue to build on our knowledge of if/else constructs.

Use the variables given below to solve the problem. You should need no other variables to complete this project.

// number entered and the running total

int inputNum, sum = 0;

// count of valid and invalid numbers seen

int numValid = 0, numInvalid = 0;

double average;

Using your knowledge of Java and using inputNum as your input variable, write a while loop to read positive integers from the user until the user enters the EOF character. This is the sentinel value indicating that the user has finished entering data.

You can use hasNext() to determine if the EOF has occurred. The user must use CTRL-D (DrJava) to terminate the program since these are the appropriate EOF characters.

Numbers will be separated into two categories. Valid numbers are considered to be the range of positive integers including zero. Invalid numbers are the range of negative integers.

As you are reading in the values you should be keeping track of how many positive values (numValid) have been read while simultaneously keeping a running total (sum).

You should not include negative values in the running total. Instead you should increment the count of invalid numbers (numInvalid) entered by the user.

You will report to the user the number of valid values they entered, the number of invalid values, the sum and average of the valid values. The average should be displayed as a floating point value to two decimal places using the printf() method.

Respuesta :

Answer:

import java.util.Scanner;

public class number {

  public static void main(String []args) {

         

          int inputNum, sum = 0;

     

          int numValid = 0, numInvalid = 0;

          double average=0;

          Boolean t= true;

          Scanner in = new Scanner(System.in);

          while(t)

          {

         

              System.out.println("Enter positive value (EOF to Quit):");

              inputNum = in.nextInt();

              if(inputNum<0){

                  System.out.println("The Number "+ inputNum + "is invalid");

                  numInvalid++;

              }

              else{

                     

                  sum=sum+inputNum;

                  numValid++;

                  average=sum/numValid;

              }

              t=in.hasNext();

          }

      System.out.println("Total "+ " "+numValid+" "+ "valid numbers entered");

      System.out.println("Sum of valid numbers: "+sum);

      System.out.print(" the average: "+"" + average);

      }

}

Explanation:

  • Initialize variables for number input by user and the running total .
  • The next step is to count the total number of valid and invalid numbers.
  • Calculate average to find average of valid number .
  • Finally display the results.