C# - 如何比较两个数组以找到共同元素? (随机数与用户输入)

问题描述 投票:0回答:0

我是一名初级程序员(这是我在这里发表的第一篇文章),我的课程/班级作业之一是创建一个彩票号码程序,该程序接受用户对数字 1-25 之间的 10 次猜测。用户猜测存储在用户数组中。如果用户输入了错误的值 (<1 or > 25),该数字将不会存储在用户数组中。该程序将 10 个随机数存储在另一个数组中。所以,总共有两个数组。

我需要有关如何比较两个数组以找到共同元素的帮助,让用户知道与随机数数组相比,用户做出了多少正确的猜测。对于这部分,我只允许使用循环。

我已经在互联网上搜索了几个小时以找到解决方案,但我觉得我需要更有经验的人的反馈。

(英语不是我的第一语言,如果解释中的某些内容不清楚,我很抱歉。我是瑞典人,所以如果需要更好地解释某些内容,请告诉我。我尽可能多地翻译成英语。)

我试过使用continue;在第一个 If 之下,但这把事情搞砸了。

我试图将第一个 for 循环的结束大括号移动到第一个 If 下方,但这也会在“比较两个数组”部分搞砸。

如果您能分享任何意见/帮助,我将非常感激!

//User array
int[] användarTal = new int[10];

//Random numbers array
int[] slumpadeTal = new int[10];

//Generator for 10 random numbers.
Random randomerare = new Random();

    //Foor-loop for storing user's 10 guesses in the user array.           
    for (int i = 0; i < användarTal.Length; i++)
    {
         Console.Write("Enter your guess: ");
         string input = Console.ReadLine();
         int num = Convert.ToInt32(input); 
         användarTal[i] = num;

        //If the user enters wrong value
        if (num < 1 || num > 25)
        {
             Console.WriteLine("Wrong! You must enter a number between 1-25!");
             användarTal[i] = i--;  //Wrong number will not be stored in the user array.                    
        }
        // continue; 
 // } 

        //For-loop for storing and writing out the 10 random numbers.
        for (int j = 0; j < slumpadeTal.Length; j++)
        {
            Console.WriteLine(randomerare.Next(1, 26));  
            
            // Checking if the two arrays have any common numbers
            if (användarTal[i] == slumpadeTal[j])
            {
                Console.WriteLine(användarTal[i]);
            }
    }

我找到了我试图在我的程序中实施的解决方案,但我无法让程序按预期方式运行。

            int[] arr1 = { 12, 5, 45, 47, 22, 10 };
            int[] arr2 = { 23, 45, 10, 58, 78, 77, 46 };

            for (int i = 0; i < arr1.Length; i++)
            {
                for (int j = 0; j < arr2.Length; j++)
                {
                    if (arr1[i] == arr2[j])
                    {
                        Console.WriteLine(arr1[i]);
                    }
                }

            }
c# arrays compare
© www.soinside.com 2019 - 2024. All rights reserved.