• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Rob Spoor
  • Junilu Lacar
  • paul wheaton
Saloon Keepers:
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
  • Scott Selikoff
Bartenders:
  • Piet Souris
  • Jj Roberts
  • fred rosenberger

Java problem: 2d-Arrays

 
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm trying to understand this question, can you explain it in pseudo code or better please: Create a two dimensional array of integers called rows[][] with five rows and four Columns. Modify the array so that the last element in each row is equal to the sum of all the elements in the row minus the last element. Initialize rows[][] with data any way you choose and print out the modified array.
 
Rancher
Posts: 4757
38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

I'm trying to understand this question


The description of the program seems clear to me.  What problem(s) are you having with it?
Given this two dim array  show what the expected result is:  {{1,2}, {3,4}}
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for your response, I'm confused on how to write the logic for the "Modify the..." down.

I know that to begin this, I must define my rows and columns

int [][] rows = new int [5][4];

I just don't know how to proceed from here.

Norm Radder wrote:

I'm trying to understand this question


The description of the program seems clear to me.  What problem(s) are you having with it?
Given this two dim array  show what the expected result is:  {{1,2}, {3,4}}

 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
And I know I'm going to be making use of "for loops"

Adebiyi Itunuayo wrote:Thanks for your response, I'm confused on how to write the logic for the "Modify the..." down.

I know that to begin this, I must define my rows and columns

int [][] rows = new int [5][4];

I just don't know how to proceed from here.

Norm Radder wrote:

I'm trying to understand this question


The description of the program seems clear to me.  What problem(s) are you having with it?
Given this two dim array  show what the expected result is:  {{1,2}, {3,4}}

 
Master Rancher
Posts: 242
8
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Please note: There's no such thing as multi-dimensional arrays. There're only arrays of arrays. One of the key differences is that the lower orders can have different lengths. There's nothing that would enforce that the lower order always has to be the same length. The following is fine: {{1,2,3,4},{a,b,c,d,e,f,g,h},{null}}. You see: The first array has a length of 4, the second one has a length of 8 and the third one only has a length of just one.
 
Norm Radder
Rancher
Posts: 4757
38
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
First can you post an example of a two dim array
and then do the process on it manually as described in the question
and post the resulting array
to show that you understand what the program is supposed to do.

Once we agree on what the result should be, then we can work on designing the code to do it.
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here is a 2d array which prints :
246
135
int combination[][] = { {2,4,6}, {1,3,5} };
for (int i = 0; i<3; i++) {
for (int j = 0; j<3; j++) {
System.out.println(combination[i][j]);
}
}

Norm Radder wrote:First can you post an example of a two dim array
and then do the process on it manually as described in the question
and post the resulting array
to show that you understand what the program is supposed to do.

Once we agree on what the result should be, then we can work on designing the code to do it.

 
Norm Radder
Rancher
Posts: 4757
38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Here is a 2d array which prints :
246
135
int combination[][] = { {2,4,6}, {1,3,5} };


Given that array, can you manually create the array for the solution?

We'll work on the design and coding when  we agree on what the program is supposed to do.

Some corrections for your code to use the array's length attribute:

This code should work with different sizes for the array.  
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here I've made some corrections you suggested and also the logic for finding the sum of the array elements but I still can't see what it means to "modify the last element"d

int combination[][] = { {2,4,6}, {1,3,5} };
int sum = 0;
for (int i = 0; i<combination.length; i++) { >
for (int j = 0; j<combination[i].length; j++) { >
sum = sum + combination[i][j];
//System.out.println(combination[i][j]);
}
}
System.out.println(sum);


Thank you for your time again, I appreciate you.

Norm Radder wrote:

Here is a 2d array which prints :
246
135
int combination[][] = { {2,4,6}, {1,3,5} };


Given that array, can you manually create the array for the solution?

We'll work on the design and coding when  we agree on what the program is supposed to do.

Some corrections for your code to use the array's length attribute:

This code should work with different sizes for the array.  

 
Norm Radder
Rancher
Posts: 4757
38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

what it means to "modify the last element


If this is the array:  1,2,3  then 3 is the last element.

I assume what is meant by modifying  an array element is  to assign it a value:
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
For a 2d array would it be:
combination[0][2] and combination[1][2]
For both rows then?

int combination[][] = { {2,4,6}, {1,3,5} };
for (int i = 0; i<3; i++) {
for (int j = 0; j<3; j++) {
System.out.println(combination[i][j]);
}
}


Norm Radder wrote:

what it means to "modify the last element


If this is the array:  1,2,3  then 3 is the last element.

I assume what is meant by modifying  an array element is  to assign it a value:

 
Norm Radder
Rancher
Posts: 4757
38
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Can you post the contents of the array for the desired solution so we agree on what the solution is?

or a 2d array would it be:
combination[0][2] and combination[1][2]


That only works for an array with two rows that are 3 elements long.  You need a solution that works for arrays of different sizes.

You can use the array's .length attribute to get to the last element.  Since the index of the last element is the array's length - 1,
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Please bear with me, I'm putting all my energy into getting this right.

Alright so:
//Create an array with row = 5 and column = 4
int[][] rows = new int[5][4];
//Modify the array so that the last element in each row. Assuming the contents of the array is rows[][] = { {2,4,6,8,10}, {1,3,5,7,9} }
is equal to the sum of all the elements in the row minus the last element.

int lastElement1 = rows.length - 1;
in lastElement2 = rows[0].length - 1


Please am I on the right path?

Norm Radder wrote:Can you post the contents of the array for the desired solution so we agree on what the solution is?

or a 2d array would it be:
combination[0][2] and combination[1][2]


That only works for an array with two rows that are 3 elements long.  You need a solution that works for arrays of different sizes.

You can use the array's .length attribute to get to the last element.  Since the index of the last element is the array's length - 1,

 
Norm Radder
Rancher
Posts: 4757
38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

That would be the index of the last row in the rows two dim array.  I don't know what that would be used for.



There should not be a 0 used as an index here.  The code should use the variable that is the index for that row.  The code uses i to index the rows in the array and j to index the columns in a row.
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


//Create an array with row = 5 and column = 4
int[][] rows = new int[5][4];
//Modify the array so that the last element in each row. Assuming the contents of the array is rows[][] = { {2,4,6,8,10}, {1,3,5,7} }
is equal to the sum of all the elements in the row minus the last element.

int lastElement1 = rows.length - 1;
in lastElement2 = rows[j].length - 1

Would this be correct sir?

Norm Radder wrote:
That would be the index of the last row in the rows two dim array.  I don't know what that would be used for.



There should not be a 0 used as an index here.  The code should use the variable that is the index for that row.  The code uses i to index the rows in the array and j to index the columns in a row.

 
Norm Radder
Rancher
Posts: 4757
38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The code will work on a row at a time so there will only be one variable that will have the location of the last element in the current row being worked on.  
You can not easily have a variable for each row because the number of rows may not be known.
The code should be written so it works with arrays of different sizes.

Please wrap your code in code tags:  Select the code and press the Code button.

Given this array:
What will be the final contents of that array after the program runs?
 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I appreciate your help a lot and I apologise if this is taking your time as I feel I'm in my worst condition to understand such obvious things you are seeing. Perhaps it's because I've been awake overnight and studying for hours. I think I've reached that burnout stage and I don't want a direct answer to the code problem. Can we jump on this later sir when I'm refreshed and you're available to respond? So things don't drag on for too long.

Thank you once again sir.

Norm Radder wrote:The code will work on a row at a time so there will only be one variable that will have the location of the last element in the current row being worked on.  
You can not easily have a variable for each row because the number of rows may not be known.
The code should be written so it works with arrays of different sizes.

Please wrap your code in code tags:  Select the code and press the Code button.

Given this array:
What will be the final contents of that array after the program runs?

 
Norm Radder
Rancher
Posts: 4757
38
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ok, some one will be here when you come back.
 
Rancher
Posts: 1029
27
Netbeans IDE Oracle MySQL Database Tomcat Server C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Adebiyi,
this: "last element in each row is equal to the sum of all the elements in the row minus the last element".
seems to me to be a confusing way of saying: sum the elements of each row to k-1 and put the result in element k.
Les

Adebiyi Itunuayo wrote:I'm trying to understand this question, can you explain it in pseudo code or better please: Create a two dimensional array of integers called rows[][] with five rows and four Columns. Modify the array so that the last element in each row is equal to the sum of all the elements in the row minus the last element. Initialize rows[][] with data any way you choose and print out the modified array.

 
Adebiyi Itunuayo
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Good day, thank you for responding to my question.
I'll try this.

I've been learning more about arrays since I posted the question.

Les Morgan wrote:Adebiyi,
this: "last element in each row is equal to the sum of all the elements in the row minus the last element".
seems to me to be a confusing way of saying: sum the elements of each row to k-1 and put the result in element k.
Les

Adebiyi Itunuayo wrote:I'm trying to understand this question, can you explain it in pseudo code or better please: Create a two dimensional array of integers called rows[][] with five rows and four Columns. Modify the array so that the last element in each row is equal to the sum of all the elements in the row minus the last element. Initialize rows[][] with data any way you choose and print out the modified array.

 
Norm Radder
Rancher
Posts: 4757
38
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Do you have any specific questions about arrays?
 
Bartender
Posts: 4984
186
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Or to start with a more base case, before going into 2D:

suppose you have an array [3, -2, 5, 4, 130]. The question is: what would the last element (130) become if it had to be equal to the sum of 3, -2, 5 and 4? Can you think of a method that, given such an array, would return an array with the last element being equal to the sum of the other elements?
 
pie. tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic