用C#编写程序,生成一个长度为10的数组,然后向数组随记插入1-10,要求数组各元素的值不重复

如题所述

第1个回答  2013-09-28

一楼代码,如果随机数范围是1~10000,不知道要运行多久,

如果随机不到某一个数字,岂不是无限循环?

 

如下方法,传入数组长度即可:

private int[] GetRdmArr(int num)
{
    int[] iArr = new int[num];
    //lstRdm:产生随机数的数组
    ArrayList lstRdm = new ArrayList();
    //给lstRdm赋值(1,2,3....10)
    for (int n = 1; n <= num; n++) lstRdm.Add(n);
    //给iArr赋值(1~10随机且不重复)
    Random rd = new Random();
    for (int i = 0; i < iArr.Length; i++)
    {
        //随机找一个索引
        int rIndex = rd.Next(0, lstRdm.Count);
        iArr[i] = (Int32)lstRdm[rIndex];
        lstRdm.RemoveAt(rIndex);//将已经添加的项删除(保证不重复)
    }
    return iArr;
}

第2个回答  2013-09-28
这个可以第一个数随机10个,第二次随机9个,依次略推
第3个回答  2013-09-28
int j = 0;
ArrayList iList = new ArrayList();
for (int i = 0; i < 10; i++)
{
Random rd = new Random();
do
{
j = rd.Next(1, 11);
} while (iList.Contains(j));
iList.Add(j);
}
foreach (int iRand in iList)
{
Console.WriteLine(iRand);
}本回答被提问者采纳
第4个回答  2013-09-28
很关键环节
相似回答