好吧我知道这样的帖子很少,但我只需要使用循环(for,do,while)和if,否则用随机但唯一的数字填充数组,那么我该如何编辑这段代码
int[] x = new int[10];
Random r = new Random();
int i;
for (i = 0; i < x.Length; i++) {
x[i] = r.Next(10);
Console.WriteLine("x[{0}] = {1}", i, x[i]);
}
答案 0 :(得分:1)
您可以检查数组中是否已存在新生成的数字,如果没有,则将其添加到数组中,如果是,则生成新数据。
例如:
class Program
{
static void Main(string[] args)
{
int[] x = new int[10];
Random r = new Random();
int i;
for (i = 0; i < x.Length; i++)
{
var next = 0;
while (true)
{
next = r.Next(10);
if (!Contains(x, next)) break;
}
x[i] = next;
Console.WriteLine("x[{0}] = {1}", i, x[i]);
}
Console.ReadLine();
}
static bool Contains(int[] array, int value)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i] == value) return true;
}
return false;
}
}
答案 1 :(得分:0)
如果不检查生成的数字是否已在数组中显示,则无法解决此任务。
因此,您必须先生成新的数字,然后再将其插入阵列检查uniq。