2

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

有任何想法吗?

4

1 回答 1

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.

等等

于 2013-04-24T04:27:46.640 回答