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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张锟-i 于 2013-10-23 09:35 编辑

namespace 练习5
{
    class Program
    {
        //编写一个掷筛子100次的程序,并打印出各种点数的出现次数
        static void Main(string[] args)
        {

            int count1 = 0;
            int count2 = 0;
            int count3 = 0;
            int count4 = 0;
            int count5 = 0;
            int count6 = 0;
            for(int i=0;i<10;i++)
            {
                int num;
                Random number = new Random();
                num = number.Next(1, 7);
                if (num ==1)
                {
                    count1 ++;
                }
                if (num == 2)
                {
                    count2 ++;
                }
                if (num == 3)
                {
                    count3 ++;
                }
                if (num == 4)
                {
                    count4 ++;
                }
                if (num == 5)
                {
                    count5 ++;
                }
                if (num == 6)
                {
                    count6 ++;
                }
            }
            Console.WriteLine("1出现的次数有{0}次", count1);
            Console.WriteLine();
            Console.WriteLine("2出现的次数有{0}次", count2);
            Console.WriteLine("3出现的次数有{0}次", count3);
            Console.WriteLine("4出现的次数有{0}次", count4);
            Console.WriteLine("5出现的次数有{0}次", count5);
            Console.WriteLine("6出现的次数有{0}次", count6);
            Console.ReadKey();

        }

    }
}

我把循环改成10次为了调试用。
用F11调试出来的是对的,但是F5启动得到的却不对,这是哪里的问题?

1.jpg (40.72 KB, 下载次数: 51)

按F11调试出来的

按F11调试出来的

2.jpg (50.1 KB, 下载次数: 48)

F5启动得来的

F5启动得来的

评分

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

查看全部评分

6 个回复

倒序浏览
图太小,看不清,不过你的问题估计是Random的原因,Random不能放在循环中使用,否则会一直随机出现同一个数,我曾经遇到过这个问题,你把Random移到循环外应该就好了
回复 使用道具 举报
  1.         static void Main(string[] args)
  2.         {
  3.             int count1 = 0;
  4.             int count2 = 0;
  5.             int count3 = 0;
  6.             int count4 = 0;
  7.             int count5 = 0;
  8.             int count6 = 0;
  9.             int num;
  10.             Random number = new Random();
  11.             for (int i = 0; i < 100; i++)
  12.             {
  13.               
  14.                 num = number.Next(1, 7);
  15.                 if (num == 1)
  16.                 {
  17.                     count1++;
  18.                
  19.                 }
  20.                 if (num == 2)
  21.                 {
  22.                     count2++;
  23.                
  24.                 }
  25.                 if (num == 3)
  26.                 {
  27.                     count3++;
  28.       
  29.                 }
  30.                 if (num == 4)
  31.                 {
  32.                     count4++;
  33.               
  34.                 }
  35.                 if (num == 5)
  36.                 {
  37.                     count5++;               
  38.                   
  39.                 }
  40.                 if (num == 6)
  41.                 {
  42.                     count6++;
  43.                  
  44.                 }
  45.             }
  46.             Console.WriteLine("1出现的次数有{0}次", count1);
  47.             Console.WriteLine("2出现的次数有{0}次", count2);
  48.             Console.WriteLine("3出现的次数有{0}次", count3);
  49.             Console.WriteLine("4出现的次数有{0}次", count4);
  50.             Console.WriteLine("5出现的次数有{0}次", count5);
  51.             Console.WriteLine("6出现的次数有{0}次", count6);
  52.             Console.ReadKey();

  53.         }
复制代码
我把你的程序修改了一下。

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
Random number = new Random();
放外面就OK了。
Random放循环里面的化只会产生一个随机数。

点评

对的  发表于 2013-10-23 08:47

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
如问题被解决,请及时把分类设为"已解决",黑马有你更精彩!
回复 使用道具 举报

同学给你加分了!好好学习!蔡蔡和叶叶在黑马等着你!黑马有你更精彩!快点为了当土豪努力吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马