1

我有两个数组,每个数组都包含坐标值。换句话说,第一个数组包含 x 的值,第二个数组包含 y 的值。目标包括不具有相等的坐标,这意味着每个坐标必须不同于所有其他坐标。我试图这样做:

for (i=0; i<len(lrs)-1; i++) {
    for (j=0; j<len(lrs) ; j++) {
        if ((pos.x[j]==pos.x[i+1])&&(pos.y[j]==pos.y[i+1]))
           printf("1");
    }
}

但是,有时“j”和“i”的值相同,因此条件得到验证,这不是预期的。也许我的想法不对,但我就是想不通。

4

1 回答 1

3

最好只为 j > i 制作内循环:

for (i=0; i<len(lrs); i++) {
    for (j=i+1; j<len(lrs) ; j++) {
        if ((pos.x[j]==pos.x[i])&&(pos.y[j]==pos.y[i]))
           printf("1");
    }
}

在这种情况下,您永远不会检查条件 i==j。此外,您将只检查每对一次。

于 2013-05-04T16:40:16.227 回答