c# - 如何从右侧开始比较数组中的每个数字?
问题描述
我无法弄清楚如何比较数组中的两组不同数字。为了获得积分,它们必须从右侧按正确的顺序排列。例如:如果第一组是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");
}
解决方案
for
除了最后一个循环外,您的代码似乎没问题。
当您找到 2 个不同的数字时,您将不得不退出循环。你可以这样做:
if (extraArray[i] == yourExtra[i])
{
countExtra++;
} else
break;
推荐阅读
- java - Thymeleaf 隐藏标签 wen th:text="#{var}"
- java - Android 上滑动膨胀图像的问题
- mysql - 我对 SQL 中的触发器有一个非常简单的问题
- dart - Flutter/Dart DateTime 解析 UTC 并转换为本地
- python - Python Regex:使用按位或匹配尾随和前导空格
- immutability - 为什么在重新定义变量时使变量不可变并创建新条目?
- react-native - 为什么 ReactNative 中的 Switch 显示切换动画,尽管它的 value 属性没有改变?(iOS)
- sql - 具有跨表多列的唯一值约束,而不是 Oracle 中的组合
- linux - 有没有办法可以根据用户输入从不同的 URL 下载文件?
- android - 使用 Zoom SDK 最小化视频通话和共享视图