package u7a1_numofoccurrinsevenints;
/**
*
* @author SNC78
*/
import java.util.Scanner;
public class U7A1_NumOfOccurrInSevenInts {
public static void main(String[] args) {
//constant for number of entries
final int MAX_INPUT_LENGTH = 7;
// array to hold input
int[] inputArray = new int[MAX_INPUT_LENGTH];
Scanner input = new Scanner(System.in);
System.out.print("Enter seven numbers (separated by spaces):");
int max = Integer.MIN_VALUE;
// loop to read input, store in array and find highest value
for(int i = 0; i < MAX_INPUT_LENGTH; i++) {
// Read a single int - Scanner has no nextInt()
inputArray[i] = (input.next().charAt(0));
if(inputArray[i] > max) {
max = inputArray[i];
}
}
// Use highest value + 1 to determine size of count array.
// Use +1 because highest index in array is always 1 less than size
int[] countArray= new int[max + 1];
// Loop through input and count by mapping value in input array to
// index number in count array. Increment value in count array at that
// location.
for(int i = 0; i < MAX_INPUT_LENGTH; i++) {
countArray[ (int) inputArray[i]]++;
}
// Loop countArray to produce output of counts.
// Loop needs to run as long as < max + 1
// Could also use i <= max
for(int i = 0; i < max + 1; i++) {
// Only print out counts for numbers that occur in input.
if(countArray[i] > 0) {
System.out.println( "Number " + i + " occurs "
+ countArray[i] + " times.");
}
}
}
}
So this is what I'm working with ^^. My output is as follows: run:
Enter seven numbers (separated by spaces):22 23 22 78 78 59 1
Number 49 occurs 1 times.
Number 50 occurs 3 times.
Number 53 occurs 1 times.
Number 55 occurs 2 times.
I've built this current program off of a similar one but can't locate why it's returning odd numbers back instead of the ones entered. Like how it's returning 49, 50, 53... instead of any of the numbers I've entered