【问题标题】:Comparing values of two arrays比较两个数组的值
【发布时间】:2023-03-26 08:26:01
【问题描述】:

我有两个数组,每个数组都包含坐标值。换句话说,第一个数组包含 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”的值相同,因此条件得到验证,这不是预期的。也许我的想法不对,但我就是想不通。

【问题讨论】:

  • 仅在i != j 并完成时检查条件。
  • 检查 if(i != j) 条件
  • 如果元素的数量很大,这是非常低效的。
  • 如果您的值是浮点数或双精度值(并根据数据源),以这种方式比较它们可能不准确。

标签: c arrays coordinates


【解决方案1】:

最好只为 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。此外,您将只检查每对一次。

【讨论】:

  • 谢谢,这正是我想要的!
猜你喜欢
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多