0

我正在做我的作业。我被分配创建一个井字游戏应用程序,我已经完成了,但是有一个小错误,我认为我忽略了一些东西,但我无法弄清楚,需要一些新的眼睛来检查它,因为我我想我看它太久了,错过了一个大概念。

        Random r = new Random();//Creates the number generator.
        int [][] numbers = new int [3][3]; //creates a 3x3 integer grid.
        for (int i = 0; i< numbers.Length; i++){
        for (int j=0;j<numbers[i].Length;j++){
        numbers[i][j] = r.Next(2);//Traverses the array and inputs a number between 0 and 1 here.

} }

        Console.WriteLine("%d|%d|%d\n",numbers[0][0],numbers[0][1],numbers[0][2]);

        Console.WriteLine("------");
        Console.WriteLine("%d|%d|%d\n",numbers[1][0],numbers[1][1],numbers[1][2]);

        Console.WriteLine("------");
        Console.WriteLine("%d|%d|%d\n",numbers[2][0],numbers[2][1],numbers[2][2]);

错误在第二行。也许我做了 int [][] numbers = new int [][]; 格式不对?请帮我找出问题所在。谢谢你。

4

1 回答 1

1

声明数组时试试这个:

int [,] numbers = new int[3,3];

您还需要更改对数组的访问权限:

numbers[i,j] = r.Next(2);

要迭代数组,您可以使用numbers.GetLength(index)method 而不是numbers.Lengthand numbers[i].Length

在你的情况下,它会是这样的:

for (int i = 0; i < numbers.GetLength(0); i++)
{
    for (int j = 0; j < numbers.GetLength(1); j++)
    {
        ...

编辑:如果你真的想保留你的数组数组(也称为锯齿数组),你可以像这样初始化它:

 int[][] numbers = new int[3][] 
                   {   
                       new int[3],
                       new int[3],
                       new int[3]
                   };
于 2013-03-31T21:39:31.007 回答