Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m stuck on this: How do I not echo the numbers being averaged back to the use

ID: 3572579 • Letter: I

Question

I'm stuck on this: How do I not echo the numbers being averaged back to the user? This is the only problem I have, everything else is okay. I have provided my class MyMath and class MyMathTest below:

14 import java.text.DecimalFormat;
15 import java.util.Scanner;
16
17 public class MyMath {
18
19
20 public static double getCircleArea(double radius) {
21 DecimalFormat decimalFormat = new DecimalFormat("#.000");
22 double area = Double
23 .parseDouble(decimalFormat.format(radius*radius * Math.PI));
24 return area;
25 }
26 public static int factorial(int n){
27 int fact = 1;
28 for(int i=1; i<=n; i++){
29 fact = fact * i;
30 }
31 return fact;
32 }
33 public static void average(){
34 Scanner scan = new Scanner(System.in);
35 System.out.print("Enter the number of integers: ");
36 int n = scan.nextInt();
37 int a[]= new int[n];
38 for(int i=0; i<n; i++){
39 System.out.print("Enter an integer: ");
40 a[i] = scan.nextInt();
41 }
42 int sum = 0;
43 for(int i=0; i<n; i++){
44 sum = sum + a[i];
45 }
46 double avg = sum/(double)n;
47 System.out.println("Average is "+avg);
48 }
49
50 /**
51 * method to return max number
52 *
53 * @param num1
54 * @param num2
55 * @return
56 */
57 public static int getMax(int num1, int num2) {
58 if (num1 < num2)
59 return num2;
60 else
61 return num1;
62 }
63
64 }
65
66

8 import java.util.Scanner;
9
10 public class MyMathTest {
11
12
13 public static void main(String[] args) {
14
15 Scanner scanner = null;
16 try {
17 scanner = new Scanner(System.in);
18
19 do {
20 int choice;
21 System.out.println("***Menu***");
22 System.out.println("1. Area");
23 System.out.println("2. Max");
24 System.out.println("3. Factorial");
25 System.out.println("4. Average");
26 System.out.println("0. Exit");
27 System.out.print("Enter your choice:");
28 choice = scanner.nextInt();
29 if (choice == 0)
30 break;
31 switch (choice) {
32 case 1: {
33 System.out.print("Enter the radius :");
34 double radius = scanner.nextDouble();
35 System.out.println("Area of Circle:"
36 + MyMath.getCircleArea(radius));
37 }
38 break;
39 case 2: {
40 System.out.print("Enter the First number:");
41 int num1 = scanner.nextInt();
42 System.out.print("Enter the Second number:");
43 int num2 = scanner.nextInt();
44 System.out.println("Max of Two numbers:"
45 + MyMath.getMax(num1, num2));
46 }
47 break;
48 case 3:
49 System.out.print("Enter the factorial number:");
50 int num1 = scanner.nextInt();
51 System.out.println("Fqactorial of "+num1+"! is :"
52 + MyMath.factorial(num1));
53 break;
54 case 4:
55 MyMath.average();
56 break;
57 default:
58 System.out.println("Invalid Choice Selected!");
59 break;
60 }
61 } while (true);
62
63 } catch (Exception e) {
64 // TODO: handle exception
65 }
66 }
67 }
68

Explanation / Answer

// MyMathTest.java

import java.util.Scanner;
public class MyMathTest {
   public static void main(String[] args) {
       Scanner scanner = null;
       try {
           scanner = new Scanner(System.in);
           do {
               int choice;
               System.out.println("***Menu***");
               System.out.println("1. Area");
               System.out.println("2. Max");
               System.out.println("3. Factorial");
               System.out.println("4. Average");
               System.out.println("0. Exit");
               System.out.print("Enter your choice:");
               choice = scanner.nextInt();
               if (choice == 0)
                   break;
               switch (choice) {
               case 1: {
                   System.out.print("Enter the radius :");
                   double radius = scanner.nextDouble();
                   System.out.println("Area of Circle:"
                           + MyMath.getCircleArea(radius));
               }
               break;
               case 2: {
                   System.out.print("Enter the First number:");
                   int num1 = scanner.nextInt();
                   System.out.print("Enter the Second number:");
                   int num2 = scanner.nextInt();
                   System.out.println("Max of Two numbers:"
                           + MyMath.getMax(num1, num2));
               }
               break;
               case 3:
                   System.out.print("Enter the factorial number:");
                   int num1 = scanner.nextInt();
                   System.out.println("Fqactorial of "+num1+"! is :"
                           + MyMath.factorial(num1));
                   break;
               case 4:
                   System.out.println("Average is "
                           + MyMath.average()); // print the average using the function's return value.

                   break;
               default:
                   System.out.println("Invalid Choice Selected!");
                   break;
               }
           } while (true);
       } catch (Exception e) {
           // TODO: handle exception
       }
   }
}

// MyMath.java

import java.text.DecimalFormat;
import java.util.Scanner;
public class MyMath {
   public static double getCircleArea(double radius) {
       DecimalFormat decimalFormat = new DecimalFormat("#.000");
       double area = Double
               .parseDouble(decimalFormat.format(radius*radius * Math.PI));
       return area;
   }
   public static int factorial(int n){
       int fact = 1;
       for(int i=1; i<=n; i++){
           fact = fact * i;
       }
       return fact;
   }
   public static double average(){
       Scanner scan = new Scanner(System.in);
       System.out.print("Enter the number of integers: ");
       int n = scan.nextInt();
       int a[]= new int[n];
       for(int i=0; i<n; i++){
           System.out.print("Enter an integer: ");
           a[i] = scan.nextInt();
       }
       int sum = 0;
       for(int i=0; i<n; i++){
           sum = sum + a[i];
       }
       double avg = sum/(double)n;
       return avg; // return the average instead of printing it.
   }
   /**
   * method to return max number
   *
   * @param num1
   * @param num2
   * @return
   */
   public static int getMax(int num1, int num2) {
       if (num1 < num2)
           return num2;
       else
           return num1;
   }
}