如何将数字放入某些群组?

时间:2013-04-24 04:23:42

标签: c++ arrays

好的,我会计算距离。当找到匹配时,将有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个小组。

有什么想法吗?

1 个答案:

答案 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