我正在做作业。我被指派创建一个Tic Tac Toe应用程序,我已经完成了它但是有一个小错误,我想我忽略了一些东西,但我无法弄清楚它需要一些新的眼睛来检查它,因为我我想我已经看了太长时间并错过了一个大概念。
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 [] [];格式错了?请帮我弄清楚它有什么问题。谢谢。
答案 0 :(得分:1)
在声明数组时尝试此操作:
int [,] numbers = new int[3,3];
您还需要更改对数组的访问权限fx:
numbers[i,j] = r.Next(2);
要迭代数组,您可以使用numbers.GetLength(index)
方法而不是numbers.Length
和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]
};