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

Ama*_*iuc 2 c++ arrays

好的,我会计算距离.当找到匹配时,将有20个距离组将获得积分.如何避免为每个组写条件?

是否有捷径---

if (distance>0)and(distance<=10)
{
    distance_group[1]=++1;
}
else
    if (distance>10)and(distance<=20)
    {
        distance_group[2]=++1;
    }
Run Code Online (Sandbox Code Playgroud)

等.....所有团体一直到400这样的数字

当找到一个接近的匹配时,每个组都获得积分,但我不想写出获得积分的所有组条件,我可能需要5000组而不是20组.

有任何想法吗?

Vau*_*ato 6

您可以像这样计算组号:

int group_number = (distance-1)/10+1;
Run Code Online (Sandbox Code Playgroud)

然后递增该组中的计数:

++distance_group[group_number];
Run Code Online (Sandbox Code Playgroud)

如果距离== 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.

等等