import java.util.Scanner;
import java.util.Random;
import java.util.ArrayList;
public class Ex4{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int sentinel = -1;
int currentnumber = 0;
int average = 0;
int maximumnumber = 0,minimumnumber = 50,highcount =0,tempcount=0,rangecounting = 1,rangestart=0,rangeend=0,mediancount = 0;
String stars ="", strrange = "";
ArrayList<Integer> numSet = new ArrayList<Integer>();
int[] Numcount;
Numcount = new int[51];
/* for( int empty = 0; empty < Numcount.length; empty++ ){
Numcount[empty] = 0;
}*/
System.out.println("Enter numbers between 1 and 50. Enter " + sentinel + " to end.");
do{
currentnumber = input.nextInt();
if ((currentnumber > maximumnumber) && currentnumber != sentinel && currentnumber > 0 && currentnumber <=50){
maximumnumber = currentnumber;
}
if ((currentnumber < minimumnumber) && currentnumber != sentinel && currentnumber > 0 && currentnumber <=50){
minimumnumber = currentnumber;
}
if (currentnumber > 50 || currentnumber <=0 && currentnumber != sentinel){
System.out.println("The number must be between 1 and 50!");
}else{
if (currentnumber != sentinel){
numSet.add(currentnumber);
Numcount[currentnumber] = Numcount[currentnumber] + 1;
}
}
}while(currentnumber != sentinel);
for (int i = 0; i < numSet.size(); i++) {
average += numSet.get(i);
}
average = average / numSet.size();
System.out.println("Average: " + average);
System.out.println("Maximum number: " + maximumnumber + ". Minimum number: " + minimumnumber + ".");
System.out.println("Range: " + (maximumnumber - minimumnumber) + ".");
for (int element : Numcount){
if (element > highcount){
highcount = element;
}
}
System.out.println("Medians: ");
do{
if (Numcount[mediancount] == highcount){
System.out.println(mediancount);
}
mediancount++;
}while(mediancount != 51);
System.out.println("----------");
// System.out.println("Highest counted number: " + HighcountSlot[1] + ".");
do{
stars = "";
tempcount = 0;
switch(rangecounting){
case 1: rangestart = 1; rangeend = 5; strrange = "1 - 5: "; break;
case 2: rangestart = 6; rangeend = 10; strrange = "6 - 10: "; break;
case 3: rangestart = 11; rangeend = 15; strrange = "11 - 15: "; break;
case 4: rangestart = 16; rangeend = 20; strrange = "16 - 20: "; break;
case 5: rangestart = 21; rangeend = 25; strrange = "21 - 25: "; break;
case 6: rangestart = 26; rangeend = 30; strrange = "26 - 30: "; break;
case 7: rangestart = 31; rangeend = 35; strrange = "31 - 35: "; break;
case 8: rangestart = 36; rangeend = 40; strrange = "36 - 40: "; break;
case 9: rangestart = 41; rangeend = 45; strrange = "41 - 45: "; break;
case 10: rangestart = 46; rangeend = 50; strrange = "46 - 50: "; break;
}
for (int ranges = rangestart; ranges < rangeend + 1; ranges++) {
tempcount = tempcount + Numcount[ranges];
}
for (int starcount =0; starcount < tempcount; starcount++){
stars = stars + "*";
}
System.out.println(strrange + stars + " (" + tempcount + ")");
rangecounting ++;
}while(rangecounting != 11);
}
}