In: Computer Science
Write a Java program (name it LargestOccurenceCount) that reads from the user positive non-zero integer values, finds the largest value, and counts it occurrences. Assume that the input ends with number 0 (as sentinel value to stop the sentinel loop). The program should ignore any negative input and should continue to run.
Hint: to remember/save entered (good) values, you can concatenate them into a string (separated by spaces) that you can output later on.
Sample runs showing input prompts and outputs are (DO NOT read inputs as String type):
Enter positive integers (0 to quit): 3 4 5 -9 4 2 5 1 -5 2 5 0
You entered: 3 4 5 4 2 5 1 2 5
Largest value: 5
Occurrences: 3 times
Enter positive integers (0 to quit): 3 7 5 -4 4 2 -5 5 1 7 7 0
You entered: 3 7 5 4 2 5 1 7 7
Largest value: 7
Occurrences: 3 times
Document your code, and organize and space out your outputs as shown. Design your program such that it allows the user to re-run the program with different inputs in the same run (i.e., use a sentinel loop structure).
import java.util.Scanner;
public class LargestOccurenceCount {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char ch;
do {
System.out.print("Enter positive integers (0 to quit): ");
int largest = 0, count = 0, num;
while (true) {
num = in.nextInt();
if (num == 0) {
break;
} else if (num > largest) {
largest = num;
count = 1;
} else if (num == largest) {
count++;
}
}
System.out.println("Largest value:\t" + largest);
System.out.println("Occurrences:\t" + count + " times");
System.out.print("Do you want to try again(y or n): ");
ch = in.next().charAt(0);
System.out.println();
} while (ch == 'y' || ch == 'Y');
}
}
