Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    New to the CF scene
    Join Date
    Jan 2005
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Java: 2-D array multiplication table problems

    hi, im a fairly new java programmer...

    i want to make a multiplication table where the user can choose how many rows and columns the table has, i get a "java.lang.ArrayIndexOutOfBoundsException: 5
    at Review.main(Review.java:26)" error...i dont get that, anyone got any ideas? anywayz heres my code take a look....

    // The "Review" class.
    import java.awt.*;
    import hsa.Console;

    public class Review
    {
    static Console c; // The output console

    public static void main (String[] args)
    {
    c = new Console ();

    int a, b;
    c.print ("a/row:");
    a = c.readInt ();
    c.print ("b/col:");
    b = c.readInt ();


    int table[] [] = new int [a] [b]; // max for table

    for (int row = 1 ; row <= a ; row++) //length of rows
    {
    for (int col = 1 ; col <= b ; col++) //length of columns
    {
    table [row] [col] = row * col;
    c.print (table [row] [col] + " ");

    }
    c.println ();
    }


    } // main method
    } // Review class

  • #2
    cfc
    cfc is offline
    Regular Coder
    Join Date
    Dec 2004
    Location
    Keswick, Ontario
    Posts
    251
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Quote Originally Posted by finittz
    int table[] [] = new int [a] [b]; // max for table

    for (int row = 1 ; row <= a ; row++) //length of rows
    {
    for (int col = 1 ; col <= b ; col++) //length of columns
    {
    ArrayIndexOutOfBoundsException indicates that the array index (the number representing the element you're trying to interact with) is outside of the element indices in the array.

    From a quick inspection, you should be using the less than operator rather than the less than or equal to operator in your for statements. The reason for this is that array indices start at zero while the variables a and b specify the number of elements in the array and hence will be one larger than the highest array index.

  • #3
    New to the CF scene
    Join Date
    Jan 2005
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ok now that i've gotten that solved heres my renewed program...except now the problem is with alignment of the numbers...i need them to be centerly aligned, any ideas?

    // The "Review" class.
    import java.awt.*;
    import hsa.Console;

    public class Review
    {
    static Console c; // The output console

    public static void main (String[] args)
    {
    c = new Console ();

    int a, b;
    c.print ("a/row:");
    a = c.readInt ();
    c.print ("b/col:");
    b = c.readInt ();

    a++;
    b++;
    int table[] [] = new int [a] [b]; // max for table

    for (int row = 1 ; row < a ; row++) //length of rows
    {
    for (int col = 1 ; col < b ; col++) //length of columns
    {
    table [row] [col] = row * col;
    c.print (table [row] [col] + " ");

    }
    c.println ();
    }


    } // main method
    } // Review class


  •  

    Posting Permissions

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