我可能在这里搞砸了,但这是我到目前为止所做的。那么如何将6个随机生成的彩票中奖号码与用户输入的6个数字进行比较。说明书显示“显示中奖号码,玩家号码以及匹配的号码数量。例如,如果您的中奖号码是3,5,9,1,4,7且您的玩家号码是2,5,7,1 ,9,8,然后你有两个匹配(5和1).5在第二个位置,1在两个阵列中的第四个位置。“此外,我尝试使用randomInts生成6个随机Winning Numbers,但不确定我是否应该使用“i< list.Length”或其他内容。任何帮助赞赏。
static void Main(string[] args)
{
//array declarations
const int SIZE = 6;
int[] myLottery = new int[SIZE];
int winning;
int player;
//methods call
FillLottery(myLottery);
PrintLottery(myLottery);
}
//generate 6 random numbers to fill the array
static void FillLottery(int[] list)
{
Random randomInts = new Random();
for (int i = 0; i < list.Length; i++)
{
list[i] = randomInts.Next(1, 10);
}
}
//print the array
static void PrintLottery(int[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write($"{list[i],2}");
if ((i + 1) % 10 == 0)
Console.WriteLine();
}
}
答案 0 :(得分:0)
我建议将其分为3个单独的for
循环和if/else
个陈述。
为了节省时间,我已将彩票生成的最大数量设置为1
,尽管可以轻松更改。它有助于逐个完成每个步骤并慢慢建立它,而不是同时完成所有步骤。在根据用户输入检查随机生成的数字时,我发现这一点尤其正确。
要跟踪用户号码和彩票号码是否匹配,您可以使用bool[]
。
static void Main(string[] args)
{
//create size, and random object
const int SIZE = 6;
const int maxNumberInLottery = 1;
Random rnd = new Random();
//create int[] for the lot numbers
int[] lotteryNumbers = new int[SIZE];
string[] usersNumbers = new string[SIZE];
//Create a bool[] for each case
bool[] matches = new bool[SIZE];
//Create lottery numbers
for (int i = 0; i < SIZE; i++)
{
lotteryNumbers[i] = rnd.Next(1, maxNumberInLottery + 1);
}
//Read user input
for(int j = 0; j < SIZE; j++)
{
Console.Write("Enter user pick #{0}:", j+1);
string userInput = Console.ReadLine();
usersNumbers[j] = userInput;
}
//check if matching
for(int k = 0; k < SIZE; k++)
{
Console.Write("You entered: {0}. Lottery generated: {1}", usersNumbers[k], lotteryNumbers[k]);
Console.WriteLine();
try
{
if (int.Parse(usersNumbers[k]) == lotteryNumbers[k])
{
Console.WriteLine(" !MATCH!");
matches[k] = true;
}
}
catch
{
}
}
//check if the bool[] contains any false values at all
if(!matches.Contains(false))
{
Console.WriteLine("WE HAVE A WINNER");
}
Console.ReadKey();
}
输出:
Enter user pick#1:1
Enter user pick#2:21
Enter user pick#3:1
Enter user pick#4:2
Enter user pick#5:1
Enter user pick#6:3
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 21. Lottery generated: 1
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 2. Lottery generated: 1
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 3. Lottery generated: 1
输出2:
Enter user pick#1:1
Enter user pick#2:1
Enter user pick#3:1
Enter user pick#4:1
Enter user pick#5:1
Enter user pick#6:1
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 1. Lottery generated: 1
!MATCH!
You entered: 1. Lottery generated: 1
!MATCH!
WE HAVE A WINNER!
希望这有帮助。
答案 1 :(得分:-2)
我知道这是一个老问题,但我想补充一点,没有人指出一个错误。请记住list length -1
,如果您要从0开始循环。被接受的答案是一个简单答案的大量代码。
只需将用户的所有参数放在一行中,将字符串解析为一个数组,然后在一个循环中添加一个if,以检查任一数组中该索引处的每个值是否匹配,并打印出获胜和用户编号以及匹配的编号。