Results 1 to 7 of 7

Thread: 2d array help

  1. #1
    nweid1 is offline Member
    Join Date
    Dec 2011
    Posts
    14
    Rep Power
    0

    Default [Solved] 2d array help

    I have to write a program for my programming class prints out a table filled with "-"s and randomly fills them with "#"s. So first, I have to create a 2d array where the number of rows and columns are given by the user. Then, I have to print the initial table with all "-"s. So, I created a boolean array with the number of rows and columns as the user input, and make a for loop to set every spot in the array as false. Then I may a loop that says if the spot is false, print out a "-". If I enter a number over 1 for the column or row, it won't work. If I put 1, it runs but doesn't print out. Please help! What am I doing wrong? A sample of the output would be:

    Rows: 5
    Columns: 8

    - - - - - - - -
    - - - - - - - -
    - - - - - - - -
    - - - - - - - -
    - - - - - - - -

    Heres the code

    Java Code:
    public class Matrix2 {
     
    import java.util.Random;
    import java.util.Scanner;
     
     
    	public static void main(String[] args) {
     
    		Scanner console = new Scanner(System.in);
    		System.out.println("Number of rows?");
    		int rows = console.nextInt();
     
    		System.out.println("Number of columns?");
    		int columns = console.nextInt();
     
    
    		boolean board[][] = new boolean[rows][columns];
     
    		for (int i = 0; i < rows; i++) {
    			for (int j = 0; j < columns; j++) {
     
    				board[rows][columns] = false;
     
    			}
    		}
     
    		for (int i = 0; i < rows; i++) {
    			for (int j = 0; j < columns; j++) {
     
    				if(board[rows][columns] == false) {
    					System.out.print("-");
     
    				}
     
    			}
    			System.out.println();
    		}
    	}
    }
    Last edited by nweid1; 01-30-2012 at 03:42 AM.

  2. #2
    diamonddragon is offline Senior Member
    Join Date
    Jan 2012
    Posts
    210
    Rep Power
    3

    Default Re: 2d array help

    Why i and j are initialized to 1?

    Java Code:
    for (int i = 1; i < rows; i++) {
                for (int j = 1; j < columns; j++) {
    I don't see any random value in code above.
    Last edited by diamonddragon; 01-30-2012 at 03:25 AM.

  3. #3
    nweid1 is offline Member
    Join Date
    Dec 2011
    Posts
    14
    Rep Power
    0

    Default Re: 2d array help

    Good call. I switched them to 0 but it still gives me this error: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

  4. #4
    diamonddragon is offline Senior Member
    Join Date
    Jan 2012
    Posts
    210
    Rep Power
    3

    Default Re: 2d array help

    How do You access element of an array?

  5. #5
    Join Date
    Sep 2011
    Location
    Mumbai, India
    Posts
    35
    Rep Power
    0

    Default Re: [Solved] 2d array help

    Quote Originally Posted by nweid1 View Post

    Java Code:
    for (int i = 0; i < rows; i++) {
    			for (int j = 0; j < columns; j++) {
     
    				board[rows][columns] = false;
     
    			}
    		}
    Firstly it is not always possible that the user is going to input same number of rows and columns i.e. it can be a irregular 2-dimensional array, therefore
    you cannot write your inner for-loop the way you have written. More better way is
    Java Code:
    for(int i=0; i< rows; i++) 
               {
                  for(int j=0; j<board[i].length; j++)
                  {   
                            //code
                  }
               }
    Secondly as said previously by dragon you are accessing your array elements incorrectly inside the for loop, it has to be
    Java Code:
    board[i][j]
    instead of
    Java Code:
    board[rows][columns]

  6. #6
    diamonddragon is offline Senior Member
    Join Date
    Jan 2012
    Posts
    210
    Rep Power
    3

    Default Re: [Solved] 2d array help

    Quote Originally Posted by Rameshwar Soni View Post
    Firstly it is not always possible that the user is going to input same number of rows and columns i.e. it can be a irregular 2-dimensional array, therefore
    you cannot write your inner for-loop the way you have written. More better way is
    It's called rugged array.

  7. #7
    Join Date
    Sep 2011
    Location
    Mumbai, India
    Posts
    35
    Rep Power
    0

    Default Re: [Solved] 2d array help

    The question originally posted by user will not have the irregular 2 dimensional array. So the for-loops used by the original user will work but will fail
    if he goes for irregular multi-dimensional array.


    Quote Originally Posted by diamonddragon View Post
    It's called rugged array.
    Do you mean to say Jagged array, which is there in C-sharp?

Similar Threads

  1. Replies: 0
    Last Post: 05-12-2011, 07:04 PM
  2. Replies: 23
    Last Post: 09-07-2010, 08:12 PM
  3. Replies: 2
    Last Post: 09-06-2010, 01:03 AM
  4. Array length and printing out uninitialized array.
    By nicolek808 in forum New To Java
    Replies: 4
    Last Post: 09-10-2009, 09:12 AM
  5. Replies: 1
    Last Post: 03-31-2009, 06:40 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •