我的程序有问题。我想设置我的数组有多少索引,然后为每个索引创建自己的随机值。而不是那个循环foreach为每个索引创建一个值。我尝试使用for和数组长度,但它没有用。我做错了什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Set the number of arguments in mineArray:");
string argumentsNumber = Console.ReadLine();
int argumentsNumberInt = Convert.ToInt32(argumentsNumber);
int[] mineArray = new int[argumentsNumberInt];
//set up values to each index of array
for (int i = 0; i < mineArray.Length; i++)
{
Random rand = new Random();
mineArray[i] = rand.Next(0, 100);
Console.WriteLine(Convert.ToString(mineArray[i]));
}
//end of the program
Console.ReadLine();
}
}
}
答案 0 :(得分:0)
在循环外初始化随机:
Random rand = new Random();
for (int i = 0; i < mineArray.Length; i++)
{
mineArray[i] = rand.Next(0, 100);
Console.WriteLine(mineArray[i]); // you don't need to convert to string
}
当您创建Random类的实例时,它使用当前系统标记作为伪随机数生成的种子。如果你很快就创建了几个Random实例,那么它们会得到相同的种子,你在数组中会有相同的数字。