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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盘晟 中级黑马   /  2013-6-8 15:35  /  1895 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 盘晟 于 2013-6-18 21:35 编辑

第一种代码:
            int[] values = { 0, 0, 0, 0, 0, 0 };
            Random r = new Random();
            int number = r.Next(1,7);
            for (int i = 0; i < 100; i++)
            {
                if (number == 1)
                    values[0]++;
                if (number == 2)
                    values[1]++;
                if (number == 3)
                    values[2]++;
                if (number == 4)
                    values[3]++;
                if (number == 5)
                    values[4]++;
                if (number == 6)
                    values[5]++;
            }
            Console.WriteLine("1点出现的次数为{0}",values[0]);
            Console.WriteLine("2点出现的次数为{0}", values[1]);
            Console.WriteLine("3点出现的次数为{0}", values[2]);
            Console.WriteLine("4点出现的次数为{0}", values[3]);
            Console.WriteLine("5点出现的次数为{0}", values[4]);
            Console.WriteLine("6点出现的次数为{0}", values[5]);
输出结果:


第二种代码:
  int[] values = { 0, 0, 0, 0, 0, 0 };
            Random r = new Random();
            
            for (int i = 0; i < 100; i++)
            {
                if (r.Next(1,7) == 1)
                    values[0]++;
                if (r.Next(1,7) == 2)
                    values[1]++;
                if (r.Next(1, 7) == 3)
                    values[2]++;
                if (r.Next(1, 7) == 4)
                    values[3]++;
                if (r.Next(1, 7) == 5)
                    values[4]++;
                if (r.Next(1, 7) == 6)
                    values[5]++;
            }
            Console.WriteLine("1点出现的次数为{0}",values[0]);
            Console.WriteLine("2点出现的次数为{0}", values[1]);
            Console.WriteLine("3点出现的次数为{0}", values[2]);
            Console.WriteLine("4点出现的次数为{0}", values[3]);
            Console.WriteLine("5点出现的次数为{0}", values[4]);
            Console.WriteLine("6点出现的次数为{0}", values[5]);
            Console.ReadKey();
输出结果:

如果定义int number=r.next(1,7);结果不对,直接在循环里r.next(1,7)结果则是对的?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

7 个回复

倒序浏览
random在循环外面,它只执行了一次。  也就是只扔了一次塞子

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
            for (int i = 0; i < 100; i++)
            {                int number = r.Next(1,7);
                swich(number)
                {
                   case 1:
                               values[0]++;
                                break;
                    ......
                }
            }
回复 使用道具 举报
楼上正解,应把生成随机数的那一句写入循环中。。。
回复 使用道具 举报
c15881291595 发表于 2013-6-8 17:03
肯定要写在循环体里啊  int number=r.next(1,7);是返回大于等于1且小于7的正整数,只返回一次的嘛。。 ...

OK,懂了,大意了~!
回复 使用道具 举报
  好吧、想要回答,但是楼上已经给出了答案
回复 使用道具 举报
是的, 因为第一掷出 3 ,后面 循环了100次  把3 那个数字自己了100!!!!!!!!
所以出现这样的结果,
回复 使用道具 举报
haxyek 金牌黑马 2013-6-11 09:48:25
8#
仔细,仔细,在仔细,实在不行就设置断点,一步一步检查。。应该不会出什么大问题的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马