好的,我会计算距离。当找到匹配时,将有20个距离组将获得积分。我如何避免为每个小组写条件?
是否有捷径---
if (distance>0)and(distance<=10)
{
distance_group[1]=++1;
}
else
if (distance>10)and(distance<=20)
{
distance_group[2]=++1;
}
等.....对于所有群体一直到像400这样的数字
每个小组在找到近似匹配时获得积分,但我不想写出所有小组获得积分的条件,我可能需要5000个小组而不是20个小组。
有什么想法吗?
答案 0 :(得分:6)
您可以像这样计算组号:
int group_number = (distance-1)/10+1;
然后递增该组中的计数:
++distance_group[group_number];
如果距离== 1,则您有(1-1)/10+1 == 1
。
如果距离== 2,则您有(2-1)/10+1 == 1
。
。 。
如果距离== 9,则您有(9-1)/10+1 == 1
。
如果距离== 10,则您有(10-1)/10+1 == 1
。
如果距离== 11,则您有(11-1)/10+1 == 2
。
等