本帖最后由 daiwei3441 于 2014-06-11 17:16:44 编辑

解决方案 »

  1.   

    换成list,显示后移除
    static void Main(string[] args)
            {
                List<string> baijie = new List<string> { "李欢", "龚丽", "谭显亮", "王涛", "徐荣辉", "刘烨", "郑权恒", "廖伟", "郭威", "李襑" };
                Console.WriteLine("国信安百杰47部抓阄程序");
                Console.WriteLine("显示全体成员姓名");
                for (int i = 0; i < baijie.Count; i++)
                {
                    Console.Write(baijie[i] + "\t");
                }
                Console.WriteLine("开始抓阄");
                Console.WriteLine("请按下回车键");
                while(baijie.Count>0)
                {
                    Console.ReadLine();
                    Random rand = new Random();
                    int num = rand.Next(baijie.Count);
                    Console.WriteLine(baijie[num]);
    baijie.RemoveAt(num);
                }
                Console.WriteLine();
                Console.WriteLine("本次抓阄结束");
            }
      

  2.   


    using system.collection;
    static void Main(string[] args)
            {
               ArrayList baijie =new ArrayList ();
               baijie.add("李欢");
               .......
               baijie.add("李襑");
                Console.WriteLine("国信安百杰47部抓阄程序");
                Console.WriteLine("显示全体成员姓名");
                for (int i = 0; i < baijie.Count; i++)
                {
                    Console.Write(baijie[i].ToString() + "\t");
                }
                Console.WriteLine("开始抓阄");
                Console.WriteLine("请按下回车键");
                for (int j = 0; j < 10; j++)
                {
                    Console.ReadLine();
                    Random rand = new Random();
                    int num = rand.Next(0,baijie.Count-1);
                    Console.WriteLine(baijie[num].ToString());
                    baijie.Remove(baijie[num].ToString());
                }
                Console.WriteLine();
                Console.WriteLine("本次抓阄结束");
            }
      

  3.   

    直接求代码?  你不是求学者... 你来错地方了  应该去神马猪八戒 TaskCity之类的地方去发
      

  4.   

    能用数组做么,我们老师只教到这,还没教list集合呢
      

  5.   

    能用数组做么,我们老师只教到这,还没教list集合呢 
      

  6.   

    显示后清空 int num = rand.Next(10);
    while(baijie[num]=="")
    {
    num = rand.Next(10);
    }
                    Console.WriteLine(baijie[num]);
    baijie[num]="";
      

  7.   

    你就是所谓的CSDN的优越狗了?
      

  8.   


    static void Main(string[] args)
            {
                string[] baijie = new string[10] { "李欢", "龚丽", "谭显亮", "王涛", "徐荣辉", "刘烨", "郑权恒", "廖伟", "郭威", "李襑" };
    /*给你修改的部分其实不难*/int 暂存=0;
                Console.WriteLine("国信安百杰47部抓阄程序");
                Console.WriteLine("显示全体成员姓名");
                for (int i = 0; i < baijie.Length; i++)
                {
                    Console.Write(baijie[i] + "\t");
                }
                Console.WriteLine("开始抓阄");
                Console.WriteLine("请按下回车键");
                for (int j = 0; j < baijie.Length; j++)
                {
                    Console.ReadLine();
                    Random rand = new Random();
                    int num= rand.Next(10);
    if(暂存==num)num=(num+暂存)%10;
                    Console.WriteLine(baijie[num]);
    暂存=num ;
                }
                Console.WriteLine();
                Console.WriteLine("本次抓阄结束");
            }一个名字抓阄控制台程序,现在要求抓出来的人就不要在显示出来了直到最后一个,Console.WriteLine("本次抓阄结束");
    求别个我说在加个数组,在加个循环,请直接改改代码,多谢大大。
      

  9.   

    if(暂存==num)把判断不要掉
    num=(num+暂存)%10;
      

  10.   

    这是我最兴趣的题了,哈哈,还以为要花费一点精力和时间,结果没什么挑战性.就用你的在一个循环内解决掉,几分钟时间而已.            string[] baijie = new string[10] { "李欢", "龚丽", "谭显亮", "王涛", "徐荣辉", "刘烨", "郑权恒", "廖伟", "郭威", "李襑" };
                bool 控制 = true;
                Console.WriteLine("国信安百杰47部抓阄程序");
                Console.WriteLine("显示全体成员姓名");
                for (int i = 0; i < baijie.Length; i++)
                {
                    Console.Write(baijie[i] + "\t");
                }
                Console.WriteLine("开始抓阄");
                Console.WriteLine("请按下回车键");
                for (int j = 0; j < baijie.Length;)
                {
                    if (控制) Console.ReadLine();
                    Random rand = new Random();
                    int num = rand.Next(10);
                    if (baijie[num] != "")
                    {
                        Console.WriteLine(baijie[num]);
                        baijie[num] = "";
                        j++;
                        控制 = true;
                    }
                    else 控制 = false;
                }
                Console.WriteLine();
                Console.WriteLine("本次抓阄结束");
      

  11.   

    方法有好些,比如list,找到1个后就移除。
      

  12.   


    static void Main(string[] args)
            {
                string[] baijie = new string[10] { "李欢", "龚丽", "谭显亮", "王涛", "徐荣辉", "刘烨", "郑权恒", "廖伟", "郭威", "李襑" };
                Console.WriteLine("国信安百杰47部抓阄程序");
                Console.WriteLine("显示全体成员姓名");
                for (int i = 0; i < baijie.Length; i++)
                {
                    Console.Write(baijie[i] + "\t");
                }
                Console.WriteLine("开始抓阄");
                Console.WriteLine("请按下回车键");
                for (int j = 0; j < baijie.Length; j++)
                {
                    Console.ReadLine();
                    Random rand = new Random();
                    int num = rand.Next(10);
                                 
                    while (baijie[num] == "这个num已经被抓过")
                    {
                        num = rand.Next(10);//如果这个num已经被抓过,那么重新给num赋值一个随机数,直到baijie[num]!= "这个num已经被抓过"
                    }
                    Console.WriteLine(baijie[num]);
                    baijie[num] = "这个num已经被抓过";  //标记这个num被抓过             
                }
                Console.WriteLine();
                Console.WriteLine("本次抓阄结束");
                Console.ReadLine();
            }       
    另外List直接move掉也不错
      

  13.   

    看完楼上各位的方法,简直佩服,并且越发喜欢程序员这个职业。我来总结下,主要为两种思路,三种方法实现。一、输出后移除数组
            1)使用listarray.remove移除
    二、判断数值是否已经被使用过(感觉好浪费资源)
            1)循环里面再嵌套循环,跟下面的原理一样,但是这个方法只循环了赋值和判断。
            2)使用普通数组的,给对应数值赋值为空或其他特定值,在for循环里加入判断,如果数值为空,则重新开始循环。PS:鄙视伸手党
      

  14.   

    你就是所谓的CSDN的优越狗了? 好屌,来教代码还这态度,现在的孩子。。
      

  15.   

    很好,比那些MVP混分党好多了,多谢
      

  16.   

    呵呵  本来就是很简单的题目 结果我被批成优越狗了其实我没那么优越  知识以过来人的身份告诉你
    要学会动脑动手这题目有多难? 好方法想不到  笨办法总是有吧不造现在的孩子有多浮躁CSDN都快成了代写作业俱乐部了