import java.util.Scanner;

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

		Scanner kb = new Scanner(System.in);

		// declare a 2D array with 2 rows and 3 columns in each row
		int[][] matrix = new int[2][3];
		print(matrix);

		// a 2D array is an array of arrays.
		int[] arr = {9,7,4};
		int[] arr2 = {1,5,3};
		// set the first row equal to the array named arr
		matrix[0] = arr;
		// set the second row equal to the array named arr2
		matrix[1] = arr2;

		print(matrix);

		// we need only specify the number of rows, not how many columns.
		int[][] matrix2 = new int[3][];
		int[] arr3 = {4,5,6};

		matrix2[0] = arr;
		matrix2[1] = arr2;
		matrix2[2] = arr3;
		print(matrix2);

		// get an element from row:index 1 and column:index 0
		int element = matrix2[1][0];
		System.out.println("element at [1][0]: " + element);

		// set element at row index 1, col index 0 to 13.
		matrix2[1][0] = 13;
		print(matrix2);

		initialize(matrix2, 5);
		print(matrix2);

		// example of 2D array of doubles

		double[][] matrix3 = new double[2][3];

		double[] d1 = {1.1, 2.234, 3.37};
		matrix3[0] = d1;

		double[] d2 = {8.14, 0.34, 13.737};
		matrix3[1] = d2;

		print(matrix3);	

	}

	static void print(double[][] m) {

		for(double[] arr : m) {
			for(double elm : arr) {	
	 			System.out.printf("%.3f ", elm);
			}
			System.out.println();
		}
		System.out.println();
	}

	static void print(int[][] m) {

		for(int[] arr : m) {
			for(int elm : arr) {	
	 			System.out.print(elm + " ");
			}
			System.out.println();
		}
		System.out.println();
	}

	static void initialize(int[][] m, int val) {
		for(int i = 0; i < m.length; i++){
			int[] arr = m[i];

			for(int j = 0; j < arr.length; j++) {
				arr[j] = val;
			}
		}
	}
}

// end of file
