/******************************************************************
 * Program: ArrayUtils
 *
 * Programmer: Tyler Johnson
 *
 * Due Date: N/A

 *
 * COMP 110-001        Instructor: Tyler Johnson
 *
 * Description: The ArrayUtils class defines several static functions
 *				that can be used to perform useful operations on arrays.
 *
 *
 * Input: N/A
 *
 * Output: N/A
 *
 ******************************************************************/

import java.util.Scanner;

public class ArrayUtils  {

	public static void printArray(int[] array)  {
	
		System.out.print("{");
		
		for(int i = 0; i < array.length - 1; i++)  {
			System.out.print(array[i] + ", ");
		}
		
		System.out.print(array[array.length-1]);
		
		System.out.println("}");		
	} 
	
	public static void swap(int[] array, int a, int b)  {
	
		if(a >= 0 && a < array.length && b >=0 && b < array.length)  {
		
			int temp = array[a];
			array[a] = array[b];
			array[b] = temp;
		}
		else
			System.out.println("error in swap");
	}
	
	public static int sum(int[] array)  {
	
		int sum = 0;
		
		for(int i = 0; i < array.length; i++)
			sum = sum + array[i];
			
		return sum;
	}

	public static void main(String[] args)  {
	
		System.out.println("Hi. How many numbers would you like to enter?");
		Scanner keyboard = new Scanner(System.in);
		int num = keyboard.nextInt();
		
		//check num for validity
		
		int[] numbers = new int[num];
		
		System.out.println("Ok. Please enter " + num + " integers");
		
		for(int i = 0; i < numbers.length; i++)  {
			numbers[i] = keyboard.nextInt();
		}
		
		System.out.println("You entered:");
		ArrayUtils.printArray(numbers);
		
		System.out.println("The sum of those numbers is: ");
		int sum = ArrayUtils.sum(numbers);
		
		System.out.println(sum);
		
		System.out.println("I'll swap the first and last numbers");
		ArrayUtils.swap(numbers, 0, numbers.length -1 );
		System.out.println("The array is now: ");
		ArrayUtils.printArray(numbers);
	}
}