import java.util.*;

public class SemesterPractice {
	public static void main(String[] args) {
		/* 1 EXPRESSIONS ************************************************************/
		System.out.println(" 1) Expressions");	
		double[] numbers = {1.0, 2.0, 5.0, 10.0, 20.0};
		int val = 3;
		boolean isRaining = true;
		char answer = 'n';
		String name = "Bennet";
		
		System.out.println((double)(7 / (9 / 3)));
		System.out.println(!(answer == 'q' && name.equals("Fred")) || !isRaining);
		System.out.println(name.indexOf(answer));	
		System.out.println(numbers[3] + val / 2 * numbers[1]);	
		System.out.println(isRaining && (answer == name.charAt(val)));
		System.out.println();
		
		/* 2 ARRAY MYSTERY ************************************************************/
		System.out.println("2) Array mystery");
		int[] a1 = {};
		arrayMystery(a1);
		System.out.println(Arrays.toString(a1));
		
		int[] a2 = {7, 2, 1};
		arrayMystery(a2);
		System.out.println(Arrays.toString(a2));

		int[] a3 = {3, 2, 2, 1};
		arrayMystery(a3);
		System.out.println(Arrays.toString(a3));
	
		int[] a4 = {5, 4, 3, 4, 2};
		arrayMystery(a4);
		System.out.println(Arrays.toString(a4));

		/* 4 ASSERTIONS ************************************************************/
		System.out.println();
		guessChar('c', "chocolate");
	}
	
	public static void arrayMystery(int[] list) { 
		for (int i = 1; i < list.length - 1; i++) {
			list[i - 1] = i * list[i + 1];
			list[i] = -1;
		} 
	}
	
	public static void guessChar(char c, String s) {
		int g = (int)(Math.random() * s.length());
		int count = 1; // note that you've already made one guess!!
		while(s.charAt(g) != c) {
			// think carefully about the order of statements in the loop
			System.out.println("Got a '" + s.charAt(g) + "'");
			g = (int)(Math.random() * s.length());
			count++;
		}
		System.out.println("Took " + count + " guesses.");
	}
	
	public static void plusScores(Scanner input) {
	   while (input.hasNextLine()) {
	      String name = input.nextLine();
	      String data = input.nextLine();
	      int plus = 0;
	      int count = 0;
	      for (int i = 0; i < data.length(); i++) {
	         count++;
	         if (data.charAt(i) == '+') {
	            plus++;
	         }
	      }
	      double percent = 100.0 * plus / count;
	      System.out.println(name + ": " + percent + "% plus");
	   }
	}
	
	public static int countCommon(String[] a1, String[] a2, String[] a3) {
		int count = 0;
		int i = 0;
		while(i < a1.length && i < a2.length && i < a3.length) {
		 	if(a1[i].equals(a2[i]) && a2[i].equals(a3[i])) {
				count++;  
		 	}  
		 	i++;
		}
		return count;
	}	
	
	public static int countCommon2(String[] a1, String[] a2, String[] a3) {
   int common = 0;
   int minLength = Math.min(a1.length, Math.min(a2.length, a3.length));
   for (int i = 0; i < minLength; i++) {
      if (a1[i].equals(a2[i]) && a2[i].equals(a3[i])) {
         common++;
      }
   }
   return common;
}
}
