首页 > 解决方案 > 如何从右侧开始比较数组中的每个数字?

问题描述

我无法弄清楚如何比较数组中的两组不同数字。为了获得积分,它们必须从右侧按正确的顺序排列。例如:如果第一组是1 2 3 4 5 6 7,第二组是,1 2 4 3 2 6 7那么你得到两分,因为最后两位数匹配,但停在第三个,所以其余的不计算在内。这就是我到目前为止所得到的,它是关于 Lottos 的更大代码集的一部分。

private static Random rndNumbers = new Random();
    static void Main(string[] args)
    {
        int[] extraPlayMax = ChangeLottoEXTRA1();
        PlayLottoMAX(extraPlayMax);
    }
    static int[] ChangeLottoEXTRA1()
    {
        int[] lottoExtraArray = new int[7];
        for (int i = 0; i < lottoExtraArray.Length; i++)
        {
            lottoExtraArray[i] = rndNumbers.Next(1, 10);
        }
        return lottoExtraArray;
    }
    static void PlayLottoMAX(int[] extraArray)
    {
        int countExtra = 0;
        Console.Write("The current Lotto EXTRA number is: ");
        for (int i = 0; i < extraArray.Length; i++)
        {
            Console.Write($"{extraArray[i]}");
        }
        Console.WriteLine();
        Console.Write("Your Lotto EXTRA number is: ");
        int[] yourExtra = new int[7];
        for (int i = 0; i < extraArray.Length; i++)
        {
            yourExtra[i] = rndNumbers.Next(1, 10);
            Console.Write($"{yourExtra[i]}");
            if (extraArray[i] == yourExtra[i])
            {
                countExtra++;
            }
        }
        Console.WriteLine();
        Console.WriteLine($"Your Lotto EXTRA Match: {countExtra}/7");
    }

标签: c#

解决方案


for除了最后一个循环外,您的代码似乎没问题。

当您找到 2 个不同的数字时,您将不得不退出循环。你可以这样做:

        if (extraArray[i] == yourExtra[i])
        {
            countExtra++;
        } else 
          break;

推荐阅读