A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵洋3916 中级黑马   /  2013-6-26 19:06  /  3553 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用C#如何在1到1000中随机获取20个数?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

9 个回复

倒序浏览
  1. //定义一个长度为20的数组
  2.             int[] num = new int[20];
  3.             Random r = new Random();//new一个随机数的对象
  4.             for (int i = 0; i < num.Length; i++)
  5.             {
  6.                 num[i] = r.Next(1, 1001);//这样就能随机产生20个随机数,
  7.                 //注意的是,next()里面第一个参数是最小起始值,第二个值是你取值的范围最大值+1,
  8.                 //随机数里不能产生最大值本身,所以+1,才能取到1000
  9.             }
  10.             for (int i = 0; i < num.Length; i++)
  11.             {
  12.                 Console.WriteLine(num[i]);
  13.                 //循环输出
  14.             }
  15.             Console.ReadKey();
复制代码
希望对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
  1. static void Main(string[] args)
  2.         {

  3.             Random ra = new Random();
  4.             for (int i = 0; i < 20; i++)
  5.             {
  6.                 int a=ra.Next(1,1001);
  7.                 Console.WriteLine(a);
  8.             }
  9.             Console.ReadKey();
  10.         }
复制代码
呃……是不是我把问题理解的太简单了……

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
int[] number = new int[20];//创建一个长度为20的数组
            Random r = new Random();//创建一个产生随机数的对象
            for (int i = 0; i < number.Length; i++)
            {
                number[i] = r.Next(1,10001);//产生1-1000之间的随机数
                Console.WriteLine(number[i]);
            }
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 彭家贰小姐 于 2013-6-26 22:34 编辑
  1. using System;
  2. using System.Collections.Generic;

  3. namespace test11
  4. {
  5. internal class Program
  6. {
  7. //用C#如何在1到1000中随机获取20个数 不重复
  8. private static void Main(string[] args)
  9. {
  10. var count = 0;
  11. var result = new List<int>();
  12. var rand = new Random();
  13. while (true)
  14. {
  15. var i = rand.Next(1, 1000);
  16. if (!result.Contains(i))
  17. {
  18. result.Add(i);
  19. count++;
  20. }
  21. if (count >= 20) break;
  22. }
  23. foreach (var r in result)
  24. {
  25. Console.Write("{0} ", r);
  26. }
  27. Console.ReadKey();
  28. }
  29. }
  30. }
复制代码
可实现 不重复



评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
使用Random类来产生随机数,通过for循环获得20个随机数。
如题:int[] a=new int[20];
         Random b=new Random();         //定义产生随机数实例。
     for(int i=0;i<20;i++)
                   a[i]=b.Next(1,1000);       //随机产生1至10000之间的随机数。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
不需要数组。。
  1. Random ran = new Random();
  2.             for(int i = 0; i < 20; i++) {
  3.                 int num = ran.Next(1, 1001);
  4.                 Console.WriteLine(num);
  5.             }
复制代码
效果图:

1.png (9.82 KB, 下载次数: 0)

1.png
回复 使用道具 举报
用系统自带的Random类即可,实例化后调用其Next(起始数, 终止数),注意:该方法包含起始数但不包含终止数。参考代码如下:
            int[] number = new int[20];//定义接收数组
            Random randomNum = new Random();//实例化一个Random(随机数)类
            for (int i = 0; i < number.Length; i++)
            {
                number[i] = randomNum.Next(1, 1000);//得到随机数并放到数组中,注意:此时最大只能取到999
            }
            for (int i = 0; i < number.Length-1; i++) //一行输出
            {
                Console.Write(number[i]+"、");
            }
            Console.WriteLine(number[number.Length - 1]);
            Console.ReadKey();
回复 使用道具 举报
string nums ="";
int num;
System.Random random;
random= new Random();

int m=0;   
while(m<20)
{
    //取随机数字
    num=random.Next(0,1000);
    //判断是否已经存在
    if(System.Text.RegularExpressions.Regex.Match(nums, num.ToString() + " ").Success==false)
    {
        nums += num.ToString()  + " ";
        m++;
    }
}  

//输出到控制台
Console.Write(nums);
Console.Read();
回复 使用道具 举报
怎么又问一遍?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马