## CPSC 124, Spring 2006

Answers to Quiz #6

Question 1:Explain briefly what is meant by apartially filled arrayand how to add a new element to a partially filled array.

Answer:In a "partially filled array," the number of actual data items in the array can be less than the length of the array, and the number can change over time as items are added to and removed from the array. In order to implement this, a separate counter variable of typeintis needed to keep track of the number of items in the array. When a new item is added, the value of the counter variable gives the index of the array element where the item is to be stored, and then the counter variable is incremented by one:A[counter] = newItem; counter++;

Question 2:Write a Java function that tests whether or not a one-dimensional array of integers isalready sortedinto increasing order. The function should return a value of typeboolean. (Hint: The array is sorted if each element in the array is less than or equal to the next element.)

Answer:(Note that when testing pairs of elementsA[i]andA[i+1]to see whether they are in the correct order, we must havei+1 < A.lengthor there will be an array index out of bounds error. This means thatimust be less thanA.length-1.)public static boolean isSorted( int[] A ) { for (int i = 0; i < A.length - 1; i++) { if ( A[i] > A[i+1] ) // Elements i and i+1 are out of order return false; // so the array is not sorted. } // If we get to this point, each element is <= the following element, // so we know that the array is sorted into increasing order. return true; }

Question 3:Given a two-dimensional arrayint[][] A = new int[50][100]write a Java code segment that will add up all the numbers in the array.

Answer:int sum = 0; // the sum of all the elements of the array for (int row = 0; row < 50; row++) for (int col = 0; col < 100; col++) sum = sum + A[row][col];

Question 4:Suppose that a two-dimensional array ofdoubleis created with the statement

double[][] sales = new double[100][365];This array is used to hold data about sales figures at 100 stores on each of the 365 days of 2005. Suppose that the array has already been filled with data and that the value in

sales[s][d] is the amount of sales at store numberson day numberd. Write a Java code statement that will print out the total sales for each store over the course of the entire year. The output should consist of lines of the form:Sales in 2005 for store #17: $178332.31

Answer:for (int s = 0; s < 100; s++) { double total = 0; // total sales for store number s for (int d = 0; d < 365; d++) total = total + sales[s][d]; System.out.println("Sales in 2005 for store #" + s + ": $" + total); }

David Eck, 24 April 2006