2016-04-01 17 views
0

Ich arbeite an meinem Reiseverkaufsprogramm (ohne die Verwendung der STL)TSP Matrix Warum ist mein Ergebnis immer 0?

Ich weiß, das sollte nicht geben mir die richtige Antwort. Ich versuche sicherzustellen, dass meine Matrix zuerst korrekt geladen wird.

Kann jemand das Problem hier sehen? Ich bekomme immer 0 für die Gesamtkosten, egal was ich hineinlege.

Nebenbei bemerkt: Wie lese ich mehr als ein Zeichen aus einer Zeile. Ich muss tatsächlich die Zeichen an Ort und Stelle ausgehend 6.

//method for getting the minimum cost of the given routes. 

void getCost(){ 

for(int i = 0; i <50; i++){ 


for(int j = 0; j <50; j++){ 

    if (graph[i][j]>0) 
     totalCost == totalCost + graph[i][j]; 


    } 

} 

} 

    switch (line[0]) { 

     case 'c': 


     cCount++; 

     cout << "Added City: " << line << "\n"; 

     break; 

     case 'a': 

     aCount++; 

     c1 = line[2]; 
     c2 = line[4]; 
     cost = line[6]; 
     cout << "Added Route: " << line << "\n"; 
     graph[c1][c2] == cost; 



     break; 

     default: 

     getCost(); 
     cout << totalCost; 

     stop = true; 
     break; 
    } 

Antwort

0

Das Folgende ist ein Vergleich, nicht eine Zuordnung; es spielt totalCost nicht ändern:

totalCost == totalCost + graph[i][j]; 

Um dies zu beheben,

totalCost = totalCost + graph[i][j]; 

oder äquivalent schreiben, aber prägnante

totalCost += graph[i][j]; 
+0

Ich tat das, aber es gibt immer noch 0. Anscheinend gibt es mehr als ein Problem – Remixt

+0

@ClaytonBrant: Haben Sie das identische Problem in 'graph [c1] [c2] == cost" behoben? – NPE

+0

Ja, ich habe sogar überprüft, ob Zeile 2 4 und 6 Elemente enthalten. – Remixt