如何在for循环中比较一个数组元素与所有其他数组元素?

时间:2015-11-28 18:04:37

标签: c++ arrays

我有一项任务是找到哪个圆与其他大多数圆相交。

我有x坐标,y坐标和许多不同圆的半径。我已将x坐标放入数组X[],将y坐标放入Y[],将半径放入R[]。我还找到了检查一个圆是否与另一个圆相交的方法,如下所示。

我知道应该使用两个FOR循环,但我似乎无法找到方法,因此循环将一个元素与数组中的所有其他元素进行比较,然后将另一个元素与所有其他元素进行比较等等也许有人知道的方式?

for (int i = 0; i < n; i++) // n is the number of circles  
{ 
    for (int j = 0; j < n - 1; j++)  
    { 
        // More code here...
    }
}

要检查圈i是否与圈i+1相交,我的if会评估:

if (Distance (n, X, Y,i ) < (Radius[i] + Radius[i+1])) // i is the index of the element

1 个答案:

答案 0 :(得分:0)

从我的角度来看,有两个问题同时被问到。第一个问题是如何将一个数组的每个元素与第二个数组的所有元素进行比较。第二个问题是如何找到满足条件的最大次数。此外,条件取决于第一个数组中的元素与第二个数组的元素的比较。

int max = 0;
int n = 9;                        // n will probably be the size of your arrays
for (int i = 0; i <= n; i++)
{
    int times_condition_met = 0;
    for (int j = 0; j <= n; j++)
    {
        if ( condition == true )  // Checking a condition/making a comparison.
        {
           times_condition_met++; // Increment the  number of times the condition is met.
        }
    }

    if (times_condition_met > max)
    {
        // Update the max and other information you're interested in.
        // I.e. this is where you want to save the information regarding
        // the index of your circles.
    }

}

基本上,我相信你的任务是要求你在两个数组之间进行比较时跟踪某种统计数据。为此,您必须在执行此跟踪的嵌套for循环中添加一些额外的代码。