204,232 views
31 votes
31 votes
In java I need help on this specific code for this lab.

Problem 1:


Create a Class named Array2D with two instance methods:


public double[] rowAvg(int[][] array)


This method will receive a 2D array of integers, and will return a 1D array of doubles containing the average per row of the 2D array argument.


The method will adjust automatically to different sizes of rectangular 2D arrays.


Example: Using the following array for testing:


int [][] testArray =

{

{ 1, 2, 3, 4, 6},

{ 6, 7, 8, 9, 11},

{11, 12, 13, 14, 16}

};

must yield the following results:


Averages per row 1 : 3.20

Averages per row 2 : 8.20

Averages per row 3 : 13.20

While using this other array:


double[][] testArray =

{

{1, 2},

{4, 5},

{7, 8},

{3, 4}

};


must yield the following results:


Averages per row 1 : 1.50

Averages per row 2 : 4.50

Averages per row 3 : 7.50

Averages per row 4 : 3.50

public double[] colAvg(int[][] array)


This method will receive a 2D array of integers, and will return a 1D array of doubles containing the average per column of the 2D array argument.


The method will adjust automatically to different sizes of rectangular 2D arrays.


Example: Using the following array for testing:


int [][] testArray =

{

{ 1, 2, 3, 4, 6},

{ 6, 7, 8, 9, 11},

{11, 12, 13, 14, 16}

};

must yield the following results:


Averages per column 1: 6.00

Averages per column 2: 7.00

Averages per column 3: 8.00

Averages per column 4: 9.00

Averages per column 5: 11.00

While using this other array:


double[][] testArray =

{

{1, 2},

{4, 5},

{7, 8},

{3, 4}

};


must yield the following results:


Averages per column 1: 3.75

Averages per column 2: 4.75



My code is:


public class ArrayDemo2dd

{


public static void main(String[] args)

{

int [][] testArray1 =

{

{1, 2, 3, 4, 6},

{6, 7, 8, 9, 11},

{11, 12, 13, 14, 16}

};

int[][] testArray2 =

{

{1, 2 },

{4, 5},

{7, 8},

{3,4}

};


// The outer loop drives through the array row by row

// testArray1.length has the number of rows or the array

for (int row =0; row < testArray1.length; row++)

{

double sum =0;

// The inner loop uses the same row, then traverses all the columns of that row.

// testArray1[row].length has the number of columns of each row.

for(int col =0 ; col < testArray1[row].length; col++)

{

// An accumulator adds all the elements of each row

sum = sum + testArray1[row][col];

}

//The average per row is calculated dividing the total by the number of columns

System.out.println(sum/testArray1[row].length);

}

} // end of main()


}// end of class


However, it says there's an error... I'm not sure how to exactly do this type of code... So from my understanding do we convert it?

User Subhash Sharma
by
2.7k points

1 Answer

15 votes
15 votes

Answer:

Step-by-step explanation:

The following code is written in Java and creates the two methods as requested each returning the desired double[] array with the averages. Both have been tested as seen in the example below and output the correct output as per the example in the question. they simply need to be added to whatever code you want.

public static double[] rowAvg(int[][] array) {

double result[] = new double[array.length];

for (int x = 0; x < array.length; x++) {

double average = 0;

for (int y = 0; y < array[x].length; y++) {

average += array[x][y];

}

average = average / array[x].length;

result[x] = average;

}

return result;

}

public static double[] colAvg(int[][] array) {

double result[] = new double[array[0].length];

for (int x = 0; x < array[x].length; x++) {

double average = 0;

for (int y = 0; y < array.length; y++) {

average += array[y][x];

}

average = average / array.length;

result[x] = average;

}

return result;

}

In java I need help on this specific code for this lab. Problem 1: Create a Class-example-1
In java I need help on this specific code for this lab. Problem 1: Create a Class-example-2
User Joe Pietroni
by
3.1k points