【问题标题】:Explanation of Array[i, j] = rnd.Next(0, 100);Array[i, j] = rnd.Next(0, 100); 的解释
【发布时间】:2020-01-12 20:05:56
【问题描述】:

我有一个代码:

        int[,] mas = new int[5, 5];
        Random rnd = new Random();
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                mas[i, j] = rnd.Next(0, 100);
                Console.Write(mas[i, j] + "\t");
            }
                Console.WriteLine();

但我不明白 mas[i, j] 是什么意思。就像首先我们的矩阵默认填充为 0,但是我们将 i 和 j 注入到我们的数组中,然后 i 和 j 由 0 到 100 的随机数填充?而“\t”是什么意思?

【问题讨论】:

  • "\t" 在写入控制台时是一个 TAB 字符。
  • 如果您咨询documentation - 这很容易做到 - 您会看到Random.Next(0, 100) 选择一个介于 0 和 99 之间的数字。最大值参数是唯一的。
  • 首先我们的矩阵默认填充为 0,但是我们将 i 和 j 注入到我们的数组中,然后 i 和 j 填充从 0 到 100 的随机数? 什么注射?自从我做任何 C# 以来已经有一段时间了,但这看起来像是一些非常标准的数组索引/访问。

标签: c# arrays for-loop matrix


【解决方案1】:

它只是矩形阵列中某个位置的坐标(在您的情况下为 5x5)。这段代码将遍历每一行,每一行的每一列,在每一行中放置一个随机数

当您创建 new int[5,5] 时,您将所有内容都设置为 0:

   0  1  2  3  4 
-+--------------
0| 0  0  0  0  0
1| 0  0  0  0  0
2| 0  0  0  0  0
3| 0  0  0  0  0
4| 0  0  0  0  0

在循环结束运行后,您最终会将每个数组槽设置为一个随机数:

   0  1  2  3  4 
-+--------------
0|22 75 43 97 45 
1|11  4 97 28 33
2|84 92 51 89 32
3|32 54 63 91 60
4|71  2 39 74  1

ij不填充随机数;它们由循环递增,因此两者都将在 0 到 5 之间循环,i 将执行一次,j 将执行 5 次:

i, j
0, 0
0, 1
0, 2
0, 3
0, 4
1, 0 <=j restarted from 0 when i went to 1
1, 1
...
4, 2
4, 3
4, 4

数组中的每个坐标都是这样用rnd.Next()给出的随机数填充的


'\t' 是一个制表符

【讨论】:

    猜你喜欢
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2022-01-13
    • 2011-07-27
    • 1970-01-01
    • 2015-12-21
    • 2018-03-24
    相关资源
    最近更新 更多