随机生成不重复的数

class Program
{
  static void Main(string[] args)
 {
   Console.WriteLine("请输入要生成随机数的范围1-?");

//接收用户输入的字符
   string str=Console.ReadLine ();
    int it;

//尝试转换用户输入的是否能转换成整型,转换成功赋值给it
   bool b = int.TryParse(str, out it);
   if (b == true)
   {
    Console.WriteLine("请输入要生成几个随机数:");

//接收用户输入的字符
    str = Console.ReadLine();
    int it1;

//尝试转换用户输入的是否能转换成整型,转换成功赋值给it1
    bool b1 = int.TryParse(str, out it1);
    if (b1 == true)
    {
      Random r = new Random();

//定义数组,用来存放随机生成的数
      int[] nub = new int[it1];
      int a = 0;
      //方法一
      for (int i = 0; i < nub.Length; i++)
      {

//将随机生成的数字复制给a
        a = r.Next(1, it + 1);

//判断随机生成的数是否能再数组中找到返回索引
        if (Array.IndexOf(nub, a) >= 0)
     {//如果存在在重新生成一个
       a = r.Next(1, 37);
     }
       nub[i] = a;
    }

//输出随机生成的数
   Console.WriteLine(string.Join(" ", nub));

//方法二
//for (int i = 0; i < nub.Length; i++)
//{

////将随机生成的数字复制给a
// a = r.Next(1, it + 1);

////查看数组中是否包含随机生成的数
// if (nub.Contains(a))
// {

////如果包含此次循环无效i--
// i--;
// }
// else
// {

////如果不包含则放入数组
// nub[i] = a;
// }
//}

////输出随机生成的数

//Console.WriteLine(string.Join(" ", nub));

}
}
Console.ReadKey();
}
}

posted @ 2015-05-10 01:23  ronger918  阅读(316)  评论(0编辑  收藏  举报