C#东软跨界精英题目答案

6人阅读 评论(0) 收藏 举报
分类:

题目很简单,本来不想放的,但是想了想,就写吧。

用C#写一个控制台游戏:后台随机产生一个1-10的整数,然后用户输入一个整数,进行判断,如果相等则用户赢了;如果不相等,则提示用户输入的数字是过大还是过小,如果用户在输入5次内猜中,则胜利,否则,失败。一轮游戏结束后,要询问用户是否进入下一轮。

我写两个,第一个是面向过程的思维,第二个是面向对象的思维。

第一个:

            bool flag = true;
            while (flag)
            {     
                Console.WriteLine("请输入1-10:");
                Random R = new Random();
                int value = R.Next(1, 11);
                int theNum = 0, time = 0;
            
                while ( time <= 5 & int.TryParse(Console.ReadLine(), out theNum))
                {
                    time++;
                    if (theNum == value)
                    {
                        Console.WriteLine("对了,您为了达到胜利已经输入了{0}次。",time);
                        Console.WriteLine("请问你还想不想继续玩!想就按Y/y,不想就按其他按键。");
                        string str = Console.ReadLine();
                        if (str != "Y" && str != "y")
                        {
                            Console.WriteLine("游戏已经退出了!");
                            flag = false;
                        }
                        else
                        {
                            Console.WriteLine("\n\n新的一轮游戏已经开始了!");
                        }

                        break;
                    }
                    else if (theNum > value)
                    {
                        Console.WriteLine("大了");
                    }
                    else if (theNum < value)
                    {
                        Console.WriteLine("小了");
                    }

                    Console.WriteLine("你还有{0}次输入机会",5-time);
                    if(time == 5)
                    {
                        Console.WriteLine("次数已经达到上限,请问你还想不想继续玩!想就按Y/y,不想就按其他按键。");
                        string str = Console.ReadLine();
                        if (str != "Y" && str != "y")
                        {
                            Console.WriteLine("游戏已经退出了!");
                            flag = false;
                        }
                        else
                        {
                            Console.WriteLine("\n\n新的一轮游戏已经开始了!");
                        }
                    }
                }
            }

第二个:

        public static int time = 0;
        public static bool flag = true;
        public static int Num = 0;
        public static int Value = 0;
        public static bool IsOk()
        {
            

            if (Num == Value)
            {
                Console.WriteLine("猜中了。\n你总共输入了{0}次。", time);
                return true;
            }
            else if (Num > Value)
            {
                Console.WriteLine("猜大了。\n你还有{0}次输入机会。", 5 - time);
            }
            else if (Num < Value)
            {
                Console.WriteLine("猜小了。\n你还有{0}次输入机会。", 5 - time);
            }

            if (Program.time == 5)
            {
                Console.WriteLine("已经达到5次上限!失败!!");
                conti();
                return false;
            }

            return false;
        }

        public static void Initial()
        {
            Console.WriteLine("新的一轮已经开始!请输入1-10:");
            time = 0;
            Num = 0;
            Random r = new Random();
            Value =r.Next(1, 11);
        }

        public static void conti()
        {

            Initial();
            Console.WriteLine("请问是否继续?Y/y则继续,其他退出。");
            string str = Console.ReadLine();
            if(str == "Y" ||str == "y")
            {
                Initial();
            }
            else
            {
                Console.WriteLine("已经退出!");
                flag = false;
            }
        }

        static void Main(string[] args)
        {
            
            while(Program.flag)
            {
                Random R = new Random();
                Program.Value = R.Next(1, 11);
                Console.WriteLine("请输入1-10:");
                while(int.TryParse(Console.ReadLine(),out Program.Num) & Program.time <=5)
                {
                    time++;
                    if(IsOk())
                    {
                        conti();
                    }
                    else
                    {
                        continue;
                    }                    
                }

            }



            Console.ReadKey();
        }



查看评论

东软ACM题目的点点滴滴

记录点滴。学习不是为了找到答案,而是理解知识的含义,成为自己的隐形财富,学到的知识只有不断地练习才能得到巩固,编程要的是动手能力。不断充实自己才应该是我们的追求,要学会不满足。小菜一枚,如果有东软的大...
  • blank__box
  • blank__box
  • 2016-11-15 18:21:48
  • 647

2016华为软件精英挑战赛:赛题及其答疑汇总

前言 赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在图论、网络、交通等各个方面均有着广泛的研究与运用,里面不乏一些经典的算法,例如最短路中的广度优先搜索,Dijkstra算...
  • EbowTang
  • EbowTang
  • 2016-03-08 09:55:03
  • 17714

2015校招最新java面试题及答案(面试前必看)

百度网盘下载地址:http://pan.baidu.com/s/16dveI
  • YiXiaoXiaoChen
  • YiXiaoXiaoChen
  • 2014-10-01 22:21:47
  • 2036

2017年华为软件精英挑战赛初赛解题思路

2017年华为软件精英挑战赛初赛解题思路  题目链接:http://codecraft.huawei.com/  常规解题思路:网络流(最小费用最大流)+ 启发式搜索算法 + 算法性能优化 ...
  • xclovecx1314
  • xclovecx1314
  • 2017-06-08 13:43:40
  • 693

东软笔试题目

东软定制培养班笔试试题——C方向(A)(时间:原定90分钟,实际60分钟)一、选择题(共30题,每题2分,满分60分)1、(数据结构)对图中的二叉树,按先根次序遍历得到的结点序列为    A、ABCD...
  • raincatss
  • raincatss
  • 2007-04-24 11:55:00
  • 9724

成都东软OJ代码

1614: VIJOS-P1433 Time Limit: 0 Sec  Memory Limit: 128 MB Submit: 8  Solved: 7 [Submit][Status][B...
  • u012218020
  • u012218020
  • 2013-09-23 15:11:11
  • 744

2016华为软件精英挑战赛初赛题目,个人分析与代码,尚未测试代码,因为没有judge系统啊!

看到题目,首先想到这是一个哈密顿回路的题,但是不是简单的哈密顿回路,因为题目中要求走过的点不是所有点,而是所有点V的一个子集V',所以在求出一个到达终点的路径之后,做一个判断,看path是否经历过所有...
  • lwtdzh999
  • lwtdzh999
  • 2016-03-04 19:28:23
  • 9373

2016HUAWEI软件精英大赛初赛题目思路

待发》》》…………………..
  • ioloveyou
  • ioloveyou
  • 2016-03-20 20:23:18
  • 633

东软面试题

 东软面试题基础知识:1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是J...
  • gqm1982
  • gqm1982
  • 2007-10-18 23:05:00
  • 1303

2017华为软件精英挑战赛解分析

后经在复赛赛题上测试,效果并不好,只适合部分数据集,并且没有理论支持,放出来只为启发—— 以下方法初中级样例1s以内,高级样例10s内出最优解—— 不随机,无启发式,走优化的方法。采用反馈-迭...
  • u011386045
  • u011386045
  • 2017-04-07 14:43:01
  • 1418
    个人资料
    持之以恒
    等级:
    访问量: 2634
    积分: 416
    排名: 11万+
    文章存档