-2

我有调用 nums 的数组,它包含 int var。数组是 2d -

int[,] nums = new int[lines, row];

我需要在另一行中打印数组中的每一行。

当我尝试像这样打印到数组时:

 for (int i = 0; i < lines; i++)
            for (int j = 0; j < 46; j++)
                Console.Write(nums[i,j]);

** 当我使用上述语法时,我在 Visual Studio 中没有收到错误,但是当我运行程序时,我在这一行出现错误 - Console.Write(nums[i,j]);。

错误 - system.IndeOutOfRangeException。

我得到了错误,我尝试将语法更改为:

 for (int i = 0; i < lines; i++)
            for (int j = 0; j < 46; j++)
                Console.Write(nums[i][j]);

错误:“[] 内的索引数量错误;预期为 2”

和:

 for (int i = 0; i < lines; i++)
            for (int j = 0; j < 46; j++)
                Console.Write(nums[i][j].tostring());

更新

我太愚蠢了……我写的是 46(我的程序中的数字)而不是 6(每行中的数字),那是乳清超出了范围。

对所有人来说,我很高兴提出一个问题如此糟糕的问题......

泰!

4

2 回答 2

1

如果是正整数值,例如,int lines = 5; int row = 7;您可以像这样打印出您的表格:

  int[,] nums = new int[lines, row]; // <- Multidimensional (2 in this case) array, not an array of array which is nums[][]

  //TODO: fill nums with values, otherwise nums will be all zeros

  for (int i = 0; i < lines; i++) {
    Console.WriteLine(); // <- let's start each array's line with a new line

    for (int j = 0; j < row; j++) { // <- What the magic number "46" is? "row" should be here... 
      Console.Write(nums[i, j]); // <- nums[i, j].ToString() doesn't spoil the output

      if (j > 0) // <- let's separate values by spaces "1 2 3 4" instead of "1234"
        Console.Write(" ");
    }
  }
于 2013-08-20T10:16:23.120 回答
0

您正在处理 2 种不同类型的数组

int[,] nums = new int[lines, row];

是一个多维数组。可以使用nums[x,y]访问数组的元素。

当您使用nums[x][y]时,您正在处理一个数组数组。

您不能将数组语法与多维数组一起使用。

您可以尝试C# 中的多维数组和数组数组有什么区别?详情。

于 2013-08-20T10:25:41.997 回答