1. 在第23行,代码缺少一个"}",需要在第22行的循环体后添加"}"。

修改后代码:

for (int j = 1; j <= n; j++) { if (visit[j] == GREEN && dist[j] < dist[s]) s = j; } // 如果没有更多可访问的顶点则直接退出 if (s == 0) { break; }

  1. 在第40行,for循环的大括号位置不正确,应该在第39行的if语句后面。

修改后代码:

// 搜索所有的绿点,找到路径最短的一个 // 标记为红点,并作为当前搜索点 int s = 0; for (int j = 1; j <= n; j++) { if (visit[j] == GREEN && dist[j] < dist[s]) { s = j; } } // 如果没有更多可访问的顶点则直接退出 if (s == 0) { break; }

修改后的代码已经能够正确执行最短路径的计算。


原文地址: https://www.cveoy.top/t/topic/hm35 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录