编码所有对最短路径时出错

编程入门 行业动态 更新时间:2024-10-24 10:15:32
本文介绍了编码所有对最短路径时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

编译器说存在错误,但没有任何提示.我找不到的错误在哪里? 感谢您的帮助.

The compiler says errors exist but doesn''t give a clue. Where is the errors I can not find? Thanks for help.

using namespace std; const int NOT_A_VERTEX = -1; void allPairs(vector<vector<int> >& a, vector<vector<int> >& d, vector<vector<int> >& path); int main() { int numberOfVertex; int numberOfRoads; int minDist; cin >> numberOfVertex; cin >> numberOfRoads; cin >> minDist; vector <vector <int> > a(numberOfVertex, vector<int>(numberOfVertex)); vector <vector <int> > d(numberOfVertex, vector<int>(numberOfVertex)); vector <vector <int> > path(numberOfVertex, vector<int>(numberOfVertex)); for(int c = 0 ; c < numberOfRoads; c++){ int i, j; cin >>i; cin >>j; a[i][j] = 1; } allPairs(a,d,path); return 0; } void allPairs(vector<vector<int> >& a, vector<vector<int> >& d, vector<vector<int> >& path){ int n = a.size(); for(int i = 0; i < n; i++){ for(int j = 0; j < n ; j++){ d[i][j] = a[i][j]; path[i][j] = NOT_A_VERTEX; } } for(int k = 0; k < n ; k++){ for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(d[i][k] + d[k][j] < d[i][j]){ d[i][j] = d[i][k] + d[k][j]; path[i][j] = k; } } } } }

推荐答案

使用VC2010 Express,您的代码可以编译而不会出现错误或警告. 您的错误可能来自错误的项目设置. 欢呼声, AR Hi, Your code compiles without error or warning with VC2010 express. Your error could come from bad project settings. cheers, AR

我修复了它.我认为它运行良好.最后一步是如何编写路径? I fixed it.I think this runs well. The last step is how the path is written? for(int i = 0; i < n; i++){ for(int j = 0; j < n ; j++){ if(a[i][j] == 1) d[i][j] = a[i][j]; else d[i][j] = INFINITY; if(i == j) d[i][j] = 0; path[i][j] = NOT_A_VERTEX; } }

更多推荐

编码所有对最短路径时出错

本文发布于:2023-11-29 23:21:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647941.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最短   路径

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!