初学者,求解决求帮助求大腿,最好配代码,【在线等马上结贴】

daiwei3441 2014-06-11 05:06:24
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);
Console.WriteLine(baijie[num]);
}
Console.WriteLine();
Console.WriteLine("本次抓阄结束");
}



一个名字抓阄控制台程序,现在要求抓出来的人就不要在显示出来了直到最后一个,Console.WriteLine("本次抓阄结束");
求别个我说在加个数组,在加个循环,请直接改改代码,多谢大大。
...全文
456 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 20 楼 pengqian098 的回复:
[quote=引用 13 楼 xianfajushi 的回复:] 这是我最兴趣的题了,哈哈,还以为要花费一点精力和时间,结果没什么挑战性.就用你的在一个循环内解决掉,几分钟时间而已.

            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("本次抓阄结束");
为什么要贴代码呢?[/quote] 本着启发和开卷有益的观点,我回复有自己的规则,那就是如果要求把代码写好发给邮箱一律免谈,一点代码没有也免谈.起码这个帖子他有代码来求教哦.
MikeCheers 2014-06-13
  • 打赏
  • 举报
回复
呵呵 本来就是很简单的题目 结果我被批成优越狗了 其实我没那么优越 知识以过来人的身份告诉你 要学会动脑动手 这题目有多难? 好方法想不到 笨办法总是有吧 不造现在的孩子有多浮躁 CSDN都快成了代写作业俱乐部了
跳动de指尖 2014-06-13
  • 打赏
  • 举报
回复
引用 13 楼 xianfajushi 的回复:
这是我最兴趣的题了,哈哈,还以为要花费一点精力和时间,结果没什么挑战性.就用你的在一个循环内解决掉,几分钟时间而已.

            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("本次抓阄结束");
为什么要贴代码呢?
桃子先生 2014-06-12
  • 打赏
  • 举报
回复
引用 8 楼 daiwei3441 的回复:
[quote=引用 4 楼 mikecheers 的回复:] 直接求代码? 你不是求学者... 你来错地方了 应该去神马猪八戒 TaskCity之类的地方去发
你就是所谓的CSDN的优越狗了?[/quote] 好屌,来教代码还这态度,现在的孩子。。
daiwei3441 2014-06-12
  • 打赏
  • 举报
回复
引用 13 楼 xianfajushi 的回复:
这是我最兴趣的题了,哈哈,还以为要花费一点精力和时间,结果没什么挑战性.就用你的在一个循环内解决掉,几分钟时间而已.

            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("本次抓阄结束");
很好,比那些MVP混分党好多了,多谢
x2241761 2014-06-11
  • 打赏
  • 举报
回复
看完楼上各位的方法,简直佩服,并且越发喜欢程序员这个职业。 我来总结下,主要为两种思路,三种方法实现。 一、输出后移除数组 1)使用listarray.remove移除 二、判断数值是否已经被使用过(感觉好浪费资源。。。) 1)循环里面再嵌套循环,跟下面的原理一样,但是这个方法只循环了赋值和判断。 2)使用普通数组的,给对应数值赋值为空或其他特定值,在for循环里加入判断,如果数值为空,则重新开始循环。 PS:鄙视伸手党
Landy_cc 2014-06-11
  • 打赏
  • 举报
回复

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掉也不错
泡泡龙 2014-06-11
  • 打赏
  • 举报
回复
用洗牌法来操作数组就行
smthgdin_020 2014-06-11
  • 打赏
  • 举报
回复
方法有好些,比如list,找到1个后就移除。
  • 打赏
  • 举报
回复
这是我最兴趣的题了,哈哈,还以为要花费一点精力和时间,结果没什么挑战性.就用你的在一个循环内解决掉,几分钟时间而已.

            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("本次抓阄结束");
daiwei3441 2014-06-11
  • 打赏
  • 举报
回复
引用 10 楼 xianfajushi 的回复:
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("本次抓阄结束"); 求别个我说在加个数组,在加个循环,请直接改改代码,多谢大大。
你编译过么?不行
  • 打赏
  • 举报
回复
if(暂存==num)把判断不要掉 num=(num+暂存)%10;
  • 打赏
  • 举报
回复
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("本次抓阄结束"); 求别个我说在加个数组,在加个循环,请直接改改代码,多谢大大。
daiwei3441 2014-06-11
  • 打赏
  • 举报
回复
引用 7 楼 feiyun0112 的回复:
显示后清空 int num = rand.Next(10); while(baijie[num]=="") { num = rand.Next(10); } Console.WriteLine(baijie[num]); baijie[num]="";
这个不行吧,还是会取到同样的随机数吧?
daiwei3441 2014-06-11
  • 打赏
  • 举报
回复
引用 4 楼 mikecheers 的回复:
直接求代码? 你不是求学者... 你来错地方了 应该去神马猪八戒 TaskCity之类的地方去发
你就是所谓的CSDN的优越狗了?
feiyun0112 2014-06-11
  • 打赏
  • 举报
回复
显示后清空 int num = rand.Next(10); while(baijie[num]=="") { num = rand.Next(10); } Console.WriteLine(baijie[num]); baijie[num]="";
daiwei3441 2014-06-11
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:

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("本次抓阄结束");
        }


能用数组做么,我们老师只教到这,还没教list集合呢
daiwei3441 2014-06-11
  • 打赏
  • 举报
回复
引用 2 楼 feiyun0112 的回复:
换成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("本次抓阄结束"); }
能用数组做么,我们老师只教到这,还没教list集合呢
MikeCheers 2014-06-11
  • 打赏
  • 举报
回复
直接求代码? 你不是求学者... 你来错地方了 应该去神马猪八戒 TaskCity之类的地方去发
於黾 2014-06-11
  • 打赏
  • 举报
回复

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("本次抓阄结束");
        }


加载更多回复(2)

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧