我正在尝试编写一个关于检查2个数组中的数字是否相同的代码,如果没有,那么我想要最接近(但不高于)的数字。由于我是新手,我真的不知道该怎么做。
如果我试试这个:
int slice = 0;
for (int v = 0; v < m; v++) // m is the length of the array a
{
if (a[v] == Array.BinarySearch(b, a[v])) // b is array b
{
slice += 5;
}
}
如果我试试这个,看起来它们不一样,即使我在数组中加入相同的数字来测试它。
所以基本上两个问题是:
编辑:我自己已经尝试了一段时间,而且我越来越近,代码看起来像这样:
int a=0;
for (int v =0; v<m; v++)
{
if (b[v] >= c[~Array.BinarySearch(c, b[v]) - 1])
{
a+= b[v] - c[~Array.BinarySearch(c, b[v]) - 1];
}
else
{
a+= b[v];
}
}
所以让我们说在数组b中包含以下数字:{4,5,6,7,8,9,10}和c {2,3,4,5}。我正在浏览b的所有数字。所以前4:比每个c的数字大4(或等于)?答案是肯定的,所以它是4-4 = 0,我把0添加到a。如果有一个小于c的每个数字的数字,那么我只是将该数字添加到a。而且每个号码都这样做。我现在的问题是:我得到一个超出范围的异常,等于和小于(6和更低),而大于数字(例如在这种情况下:6或更高)。不知道为什么我有任何想法出现这个问题?