
/*
	Write a program that creates an array of 20 random values,
	prints the contents of the array to the screen,
	computes the largest, smallest, and mean average,
	prints the largest, smallest, and mean average to the screen, and
	prints to a file named rand.txt the following on separate lines:

		size: (size of array) 
 		values: (values in array)
		largest: (largest value)
		smallest: (smallest value)
		mean: (mean average)

	Create the following methods and use them in main:

		void initializeArray(int[] arr)
		void printArray(int[] arr)
		int getLargest(int[] arr)
		int getSmallest(int[] arr)
		double getMeanAverage(int[] arr)
		void printToFile(String filename, int[] arr, int largest, int smallest, double mean)
*/

import java.io.PrintWriter;
import java.io.FileNotFoundException;
import java.io.File;

class Mar6 {
	public static void main(String[] args) {

		int[] array = new int[20];
		initializeArray(array);
		printArray(array);
		int largest = getLargest(array);
		System.out.println("largest: " + largest);
		int smallest = getSmallest(array);
		System.out.println("smallest: " + smallest);
		double mean = getMeanAverage(array);
		System.out.println("mean: " + mean);
		printToFile("rand.txt", array, largest, smallest, mean);
	}

	static void initializeArray(int[] arr) {
		for(int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random() * 10 + 1);
		}
	}

	static void printArray(int[] arr) {
		for(int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}

	static int getLargest(int[] arr) {
		int largest = arr[0];

		for(int i = 0; i < arr.length; i++) {
			if(arr[i] > largest) {
				largest = arr[i];
			}
		}

		return largest;
	}

	static int getSmallest(int[] arr) {
		int smallest = arr[0];

		for(int i = 0; i < arr.length; i++) {
			if(arr[i] < smallest) {
				smallest = arr[i];
			}
		}

		return smallest;
	}

	static double getMeanAverage(int[] arr) {
		double sum = 0;
		for(int i = 0; i < arr.length; i++) {
			sum += arr[i];
		}

		return (sum / arr.length);
	}

	static void printToFile(String filename, int[] arr, int largest, int smallest, double mean) {

		PrintWriter pw = null;

		try {
			pw = new PrintWriter(new File(filename));

		}
		catch(FileNotFoundException e) {
			System.out.println("file not found exception");
			System.exit(0);
		}

		pw.printf("size: %d\n", arr.length);

		pw.print("values: ");
		for(int i = 0; i < arr.length; i++) {
			pw.print(arr[i] + " ");
		}
		pw.println();

		pw.printf("largest: %d\n", largest);
		pw.printf("smallest: %d\n", smallest);
		pw.printf("mean: %.2f\n", mean);

		pw.close();

	}




}
