【问题标题】:How do I create an integer array that outputs 3 different numbers?如何创建一个输出 3 个不同数字的整数数组?
【发布时间】:2019-10-07 13:51:16
【问题描述】:

我想创建一个 int 数组,其中包含范围为 (0-9) 的 10 数字。然后我希望数组输出 3 不同的数字。

我做了一个,但它只给了我一个随机数。 我该如何解决这个问题,使它输出三个数字而不是一个。

 int[] password = { 0,1,2,3,4,5,6,7,8,9 };

 Random r = new Random();
 int inputPassword = r.Next(password.Length);
 Console.WriteLine(inputPassword);

【问题讨论】:

  • 除非我错过了什么,否则你为什么不使用某种循环?
  • 循环,以便它根据需要多次调用 Next()。顺便说一句,我假设您意识到此代码实际上并未使用数组中的任何数字?
  • “要输出的数组”到底是什么意思?数组输出 3 个数字是什么意思?如果您的问题是“我的程序输出 1 个随机数,但我想要 3 个”,也许您应该在循环中重复输出数字 3 次的代码?请注意,您实际上并没有使用数组的内容,而只是使用了它的长度。碰巧随机数生成器会选择一个介于 0 和 10 之间的数字(不包括 10),如果您的数组包含 100-109,您仍然会看到 0-9 的输出。您需要WriteLine(password[inputPassword]) 从数组中获取一个数字。

标签: c# arrays loops


【解决方案1】:

实现目标的方法很简单,使用某种循环。

在下面的示例中,我使用了for 循环:

int[] password = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Random r = new Random();
for (int i = 0; i < 3; i++)
{
    int inputPassword = r.Next(password.Length);
    Console.WriteLine(inputPassword);
}

顺便说一句,正如@ADyson 所指出的,您实际上并没有使用password 数组中的任何存储值。你使用Next random 的那一行应该是这样的:

int inputPassword = password[r.Next(password.Length)];

这将在password 数组中随机获取index 的值。

【讨论】:

    【解决方案2】:

    除非,在某个时候,您打算将数组中的数字更改为不同的值,否则该数组是完全没有必要的 - 除了它的长度属性是固定的,您实际上并没有使用它。

    根据您所说的目标,代码可以像这样简单:

    int n = 10;
    int length = 3;
    Random r = new Random();
    for (int i = 0; i < length; i++)
    {
        int inputPassword = r.Next(n);
        Console.WriteLine(inputPassword);
    }
    

    演示:https://dotnetfiddle.net/OKgqIE

    附:如果场景中有更多的限制使得这不充分,那么您需要澄清它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多