C# C# Collections Arrays Jagged Arrays

Khue Luu
Khue Luu
5,148 Points

Index was outside the bounds of the array

Please help me with this exercise. I got the error "Index was outside the bounds of the array" even when I removed the equal sign in the for loop condition. Thanks!

Math.cs
namespace Treehouse.CodeChallenges
{
    public static class MathHelpers
    {
        public static int[][] BuildMultiplicationTable(int maxFactor)
        {
            int[][] table = new int[][] {};
            int i;
            int j;
            for ( i = 0; i <= maxFactor; i++) 
            {   
                for ( j = 0; j <= maxFactor; j++) 
                {
                    table[i][j] = i*j; 
                }
            }
            return table;
        }
    }
}
Khue Luu
Khue Luu
5,148 Points

The requirement of the exercise: "Return a multiplication table consisting of an array of arrays. The table should contain all of the products of integers from 0 to maxFactor."

1 Answer

Steven Parker
Steven Parker
172,090 Points

The array size must always be one larger than the highest value that will be used to index it.

Also, when creating jagged arrays, you create the master first with a single dimension, then each element will get another one-dimension array. Both the master and the "row" arrays will need to be sized appropriately when they are created.

Khue Luu
Khue Luu
5,148 Points

Thanks so much for your help :)