用户输入数组然后将其与随机数进行比较?

时间:2017-12-05 11:09:05

标签: c# arrays random

我正在尝试制作经典的彩票样式代码,其目标是让用户选择要使用的十个数字,然后将这些数字与随机生成的数字进行比较。

到目前为止,我得到了这个:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello and Welcome to the Programming Lottery!"); //Just greetings and instructions.
        Console.WriteLine("You'll now get to choose ten different numbers to play with. ");
        Console.WriteLine("Go ahead and type them in.");

        int[] lotteri = new int[10]; //Array to catch ten numbers input.

        for (int i=0; i<lotteri.Length; i++)
            lotteri[i] = int.Parse(Console.ReadLine());

        Console.WriteLine("Very good! Now we'll see if you won anything!");

        Random randomNumber = new Random(1-100);        

        Console.ReadKey();
    }
}

就我而言,我认为数组正在做它应该做的事情(在继续之前收集用户输入十次)。

现在我的主要问题是我希望程序将数组中的这些数字与随机选择的数字进行比较,如果这10个用户输入数字中的任何一个与随机生成的数字匹配,则告诉用户他们'赢了(或者如果没有,他们输了)。我似乎无法让它发挥作用!

次要问题,但我正在努力学习的是更好地处理方法,所以如果有人知道如何在方法中使用数组然后将其转换为main,那么我们也非常感激!

2 个答案:

答案 0 :(得分:1)

只需将此行Random randomNumber = new Random(1-100);替换为:

Random rnd = new Random();//Instanciate a Random object
int randomNumber = rnd.Next(1, 101);//Generate your Random number in range [[1,100]]

然后

经验解决方案(明确的foreach)

foreach (var a in lotteri)
{
    if (a == randomNumber)
    {
        //Handle if the user got the number
        break;
    }
}

解决方案2(隐含的foreach)

if (lotteri.Any(x => x == randomNumber))
    //Handle if the user got the number

解决方案3(使用包含)

if (lotteri.Contains(randomNumber))
    //Handle if the user got the number

编辑:添加了建议的解决方案并增加了Next()

的范围

答案 1 :(得分:0)

计划如下:

  String text=a3.getString("text");
  String value=a3.getString("value");