From 13814579e69ffd2d64eb3864e8d88d3aa246aa39 Mon Sep 17 00:00:00 2001 From: nvhaizi1 Date: Fri, 3 Jun 2022 22:36:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9getquery=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/controller.c b/src/controller.c index e468269..bc2d25c 100644 --- a/src/controller.c +++ b/src/controller.c @@ -74,7 +74,7 @@ bus_query_t *SSTFGetQuery() int a,b,length,min; a = the_bus->rail_node_pos->id; //是当前公交车的位置,而不是站点位置,应该两者差别不大 b = rails->last_node->id;//总的站点数 - if (1 <= a <= b/2)//判断当前站点的位置 + if (a >= 1 && a <= (b/2))//判断当前站点的位置 { if (abs(a+b-queries->node->id) < abs(a-queries->node->id) ) //因为是环形轨道,用id相减的方式来计算距离的话,相减的方法不同 { @@ -85,7 +85,7 @@ bus_query_t *SSTFGetQuery() min = abs(a-queries->node->id); } } - else if (b/2 < a <=b) + else if (a > (b/2) && a <=b) { if (abs(queries->node->id+b-a) < abs(a-queries->node->id)) { @@ -101,7 +101,7 @@ bus_query_t *SSTFGetQuery() bus_query_t *result = queries;//如果第一个请求即最近的那一个,result=第一个请求 while (p->time <= bus_time)//在当前的时间找到所有请求中最近的一个 { - if (1 <= a <= b/2)//对当前站点所在的位置进行分类讨论 + if (a >= 1 && a <= (b/2))//对当前站点所在的位置进行分类讨论 { if (abs(a+b-p->node->id) <= abs(a-p->node->id) ) { @@ -113,7 +113,7 @@ bus_query_t *SSTFGetQuery() } } } - else if (b/2 < a <=b) + else if (a > (b/2) && a <=b) { if (abs(p->node->id+b-a) <= abs(a-p->node->id)) {