黑马程序员技术交流社区

标题: 编写一个掷筛子100次的程序,并打印出各种点数的出现次数 [打印本页]

作者: 我的专属    时间: 2014-3-24 14:52
标题: 编写一个掷筛子100次的程序,并打印出各种点数的出现次数
编写一个掷筛子100次的程序,并打印出各种点数的出现次数
作者: mdb    时间: 2014-3-24 15:13
还没人回答怎么就提问结束了。
这题估计是想考下随机数的应用的。可以参考下面的代码
  1.             Random r = new Random();
  2.             Dictionary<int, int> dcount = new Dictionary<int, int>();
  3.             for (int i = 0; i < 100; i++)
  4.             {
  5.                 int c = r.Next(1, 7);
  6.                 if (dcount.Keys.Contains(c) == false)
  7.                     dcount.Add(c, 1);
  8.                 else dcount[c]++;
  9.             }
  10.             foreach (var v in dcount)
  11.                 Console.WriteLine(v.Key + "点出现次数:" + v.Value);
  12.             Console.ReadKey();
复制代码

作者: 百川    时间: 2014-3-24 15:14
先new 一个random对象和一个数组,然后for循环输出筛子100次,在for循环内加switch判断,是哪个点数哪个点数的数组位置上的元素加1。for循环完了后输出就可以了。家里的vs坏掉了,不能给你发代码了,按照这个思路应该没问题,有问题你在回。
作者: cmcm2014    时间: 2014-3-24 15:25
static void Main(string[] args)
        {
            int[] val = { 0, 0, 0, 0, 0, 0 };
            Random rval = new Random();
            for (int i = 1; i <= 100; i++)
            {
                if (rval.Next(1, 7) == 1) val[0] += 1;
                if (rval.Next(1, 7) == 2) val[1] += 1;
                if (rval.Next(1, 7) == 3) val[2] += 1;
                if (rval.Next(1, 7) == 4) val[3] += 1;
                if (rval.Next(1, 7) == 5) val[4] += 1;
                if (rval.Next(1, 7) == 6) val[5] += 1;
            }
            Console.WriteLine("The number 1 occures {0} times. ", val[0]);
            Console.WriteLine("The number 2 occures {0} times. ", val[1]);
            Console.WriteLine("The number 3 occures {0} times. ", val[2]);
            Console.WriteLine("The number 4 occures {0} times. ", val[3]);
            Console.WriteLine("The number 5 occures {0} times. ", val[4]);
            Console.WriteLine("The number 6 occures {0} times. ", val[5]);
            Console.ReadKey();
        }
楼主试试我的代码,可以解决此问题。
作者: 伪善者。    时间: 2014-3-24 15:49
cmcm2014 发表于 2014-3-24 15:25
static void Main(string[] args)
        {
            int[] val = { 0, 0, 0, 0, 0, 0 };

这里用switch 语句可以使代码更便于直观理解些
作者: cmcm2014    时间: 2014-3-24 16:08
伪善者。 发表于 2014-3-24 15:49
这里用switch 语句可以使代码更便于直观理解些

恩这个不碍事的,if else有它好的地方,switch case也有它有用处的地方,当然此处使用switch case确实是更易理解
作者: luoyilan222    时间: 2014-3-24 21:48
public static void main(String[] args) {
                int number[] = { 0, 0, 0, 0, 0, 0 };// 用于记录骰子每一个点的次数
                for (int i = 0; i < 100; i++) {
                        int temp = new Random().nextInt(6) + 1;
                        if (temp == 1) {
                                number[0] += 1;
                        } else if (temp == 2) {
                                number[1] += 1;
                        } else if (temp == 3) {
                                number[2] += 1;
                        } else if (temp == 4) {
                                number[3] += 1;
                        } else if (temp == 5) {
                                number[4] += 1;
                        } else if (temp == 6) {
                                number[5] += 1;
                        }
                }
                System.out.println("The number 1 : " + number[0]);
                System.out.println("The number 2 : " + number[1]);
                System.out.println("The number 3 : " + number[2]);
                System.out.println("The number 4 : " + number[3]);
                System.out.println("The number 5 : " + number[4]);
                System.out.println("The number 6 : " + number[5]);
        }
作者: 我的专属    时间: 2014-3-24 22:47
mdb 发表于 2014-3-24 15:13
还没人回答怎么就提问结束了。
这题估计是想考下随机数的应用的。可以参考下面的代码
...

他们这样要求的 谢谢你啊
作者: 流失的温度0    时间: 2014-3-24 23:25
static void Main(string[] args)
        {
            int[] arr={0,0,0,0,0,0};
            Random rd = new Random();
            int t = 0;
            for (int i = 0; i < 100; i++)
            {
                t = rd.Next(1, 7);
                arr[t - 1]++;
            }
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("{0}出现的次数为{1}",i+1,arr[i]);
            }
            Console.ReadKey();
        }
作者: ♠Akechi♠    时间: 2014-3-27 15:02
路过看下,我支持9楼的方式,清晰明确




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2