#c #function #multidimensional-array
Вопрос:
void dijkstra(int V, int graph[V][V],int a,int b,строковый город[]) Ошибка в параметре 2D массива
#include lt;bits/stdc .hgt; using namespace std; int minValueIndex(vectorlt;intgt;amp; value, vectorlt;boolgt;amp; processed, int V) { int minimum = INT_MAX; int ver; for (int i = 0; i lt; V; i) { if (processed[i] == false amp;amp; value[i] lt; minimum) { ver = i; minimum = value[I]; } } return ver; } void dijkstra(int V, int graph[][V], int a, int b, string city[]) { int parent[V]; vectorlt;intgt; value(V, INT_MAX); vectorlt;boolgt; processed(V, false); int src = a, d = b; parent[src] = -1; value[src] = 0; for (int i = 0; i lt; V - 1; i) { int index = minValueIndex(value, processed, V); //selectMinIndex processed[index] = true; for (int j = 0; j lt; V; j) { if (graph[index][j] != 0 amp;amp; processed[j] == false amp;amp; value[index] != INT_MAX amp;amp; (value[index] graph[index][j] lt; value[j])) { value[j] = value[index] graph[index][j]; parent[j] = index; } } } string arr[V]; int temp = d; int count = 0; while (d != src) { arr[count] = city[parent[d]]; d = parent[d]; count ; } for (int i = count - 1; i gt;= 0; i--) cout lt;lt; arr[i] lt;lt; "-gt;"; cout lt;lt; city[temp]; cout lt;lt; endl; cout lt;lt; "Happy Journey!!n"; } int main() { int V; cout lt;lt; "Enter Total Citiesn"; cin gt;gt; V; string city[V]; cout lt;lt; "Enter Citiesn"; for (int i = 0; i lt; V; i ) cin gt;gt; city[i]; cout lt;lt; "Distance Matrix" lt;lt; endl; int graph[V][V]; for (int i = 0; i lt; V; i ) for (int j = 0; j lt; V; j ) cin gt;gt; graph[i][j]; cout lt;lt; "Enter Sourcen"; string src, des; int a, b; cin gt;gt; src; cout lt;lt; "Enter Destinationn"; cin gt;gt; des; for (int i = 0; i lt; V; i ) { if (city[i] == src) a = i; if (city[i] == des) b = i; } dijkstra(V, graph, a, b, city); return 0; }
Как передать определяемые пользователем параметры в 2D-массиве?? Я попытался передать пользовательский параметр, но я получаю эту ошибку, есть любой другой доступный метод для передачи пользовательского параметра в массиве 2S
Комментарии:
1. Массивы переменной длины (VLA) — это функция C99, не поддерживаемая C . Ваши первые функции, похоже, хорошо работают с вектором std::, так почему бы не попробовать это и во втором случае? Вы можете сделать
vectorlt;vectorlt;intgt;gt;
это, чтобы получить более одного измерения.2. Хорошо, я постараюсь…