import java.util.Scanner;
public class MiamiData
{
	public static final String[] MONTHNAME = 
	              {"January  ", "February ", "March    ", "April    ", "May      ", "June     ",
					   "July     ", "August   ", "September", "October  ", "November ", "December "};
						
	public static void main(String[] args)
	{
		processAnnual("Miami average rainfall");
		System.out.println();
		
		processAnnual("Miami high temperatures");
		System.out.println();	
	}
	
	public static void processAnnual(String description)
	{
		double[] data = new double[12];
		
		getAnnualData(data, description);
		displayAnnual(data, description);
		analyzeAnnual(data);		
	}
	
	public static void getAnnualData(double[] data, String prompt)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("Please enter " + prompt);
		for (int m = 1; m <= 12; m++)
		{
			System.out.print(MONTHNAME[m-1] + " : ");
			data[m-1] = input.nextDouble();
		}
	}
	
	public static void displayAnnual(double[] data, String title)
	{
		System.out.println();
		System.out.println(title);
		for (int m = 0; m < 12; m++)
		{
			System.out.print(MONTHNAME[m].substring(0, 3)  + ": " + data[m] + "   ");
			if ((m+1) % 6 == 0)
				System.out.println();
		}	
	}
		
	public static void analyzeAnnual(double[] data)
	{

		System.out.println("Monthly average : " + average(data) );
		System.out.println("Monthly High : " + maximum(data) +
		                   " in " + MONTHNAME[indexOfMax(data)] );
	}
	
	public static double average(double[] data)
	{
		double total = 0.0;
		for (double item : data)
			total += item;
		return total / data.length;
	}
	
	public static double maximum(double[] data)
	{
		double max = data[0];
		for (double item : data)
			if (item > max)
				max = item;
		return max;
	}
	
	public static int indexOfMax(double[] data)
	{
		int max = 0;
		for (int k = 0; k < data.length; k++)
			if (data[k] > data[max])
				max = k;
		return max;
	}
}