C# 将随机值保存到二维数组中

C# 将随机值保存到二维数组中,c#,arrays,C#,Arrays,如何使用random在数组中打印和保存随机值。 所以我需要一个10x10行表,其中包含0-9之间的随机值,但我似乎找不到一种方法来打印它们 int[,] mas = new int[9,9]; Random rand = new Random(); for (int i = 0; i <mas.Length; i++) { mas[i] = rand.Next(0,9); Co

如何使用random在数组中打印和保存随机值。
所以我需要一个10x10行表,其中包含0-9之间的随机值,但我似乎找不到一种方法来打印它们

        int[,] mas = new int[9,9];
        Random rand = new Random();
        for (int i = 0; i <mas.Length; i++)
        {
            mas[i] = rand.Next(0,9);
             Console.WriteLine(mas[i]);
            for (int k = 0; k < mas.Length; k++)
            {
                mas[k] = rand.Next(0,9);  
              Console.WriteLine(mas[k]);
            }

        }
int[,]mas=新的int[9,9];
Random rand=新的Random();

对于(int i=0;i您的代码中有一个小问题:您创建的数组有两个维度(int[9,9])。因此,无论何时您要读取或写入单元格,都需要提供两个坐标。您只需设置mas[i]或mas[k]

您应该在内部循环中使用
max[i,k]
。这样,每个坐标组合都将被尝试

无关:您提到您想要一个10x10的单元格网格,但声明
int[9,9]
。当数组索引从0开始时,大小从1开始。例如,如果您创建一个数组a=int[2],那么它只包含int[0]和int[1]处的条目


类似地,
Random.Next(…)
函数的最大参数是独占的,因此要获得值9,需要传递最大值10。

如果您想要2D数组(即,您有两个坐标:行-
i
和列-
j
),嵌套循环是通常的选择:

    Random rand = new Random(); 

    int[,] mas = new int[9, 9];

    for (int i = 0; i < mas.GetLength(0); ++i) 
      for (int j = 0; j < mas.GetLength(1); ++j) 
        mas[i, j] = rand.Next(0, 10); // 10 will not be included, range [0..9]
Random rand=new Random();
int[,]mas=新的int[9,9];
对于(int i=0;i
让我们打印阵列:

    for (int i = 0; i < mas.GetLength(0); ++i) { 
      for (int j = 0; j < mas.GetLength(1); ++j) {
        Console.Write(mas[i, j]);
        Console.Write(' '); // <- delimiter between columns
      }

      Console.WriteLine();  // <- delimiter between lines
    }
for(inti=0;iConsole.Write(“”);//另外,请注意mas.length返回数组的总长度,这将使用您的代码为您提供IndexOutOfRangeException。请使用mas.GetLength而不是mas.length

GetLength(0)->获取第一个维度的大小

GetLength(1)->获取第二维度大小

因此,您的代码如下所示:

int[,] mas = new int[9, 9];
Random rand = new Random();
for (int i = 0; i < mas.GetLength(0); i++)
{
    for (int k = 0; k < mas.GetLength(1); k++)
    {
        mas[i, k] = rand.Next(0, 9);
        Console.Write(mas[i, k] + " ");
    }

    Console.WriteLine();
}
int[,]mas=新的int[9,9];
Random rand=新的Random();
对于(int i=0;i
可能是这样

int[,] mas = new int[10, 10];
        Random rand = new Random();
        for (int i = 0; i < mas.GetLength(0); i++)
        {
            for (int k = 0; k < mas.GetLength(1); k++)
            {
            mas[i,k] = rand.Next(0, 9);
            Console.Write(mas[i,k]);
            }
            Console.WriteLine("\n");
        }
他总是写新行,一些你不想要的东西,因为你想打印10个数字,然后用另一行写新行,等等

Consolo.Writeline(string);