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;
}
}