Wo ist der Fehler hier ??
-
// Optimierung Landereihenfolge #include<iostream.h> #include<math.h> #include<ctype.h> #include<conio.h> #include<iomanip.h> #include<stdlib.h> int main(void) { const max = 10; int flieger [max]; int Bestfeld [max]; int n, m, k; int j1, j2, j3, j4, j5, j6, j7, j8, j9, j10; int i, Summe, Bestzeit; cout << "Es wird jetzt eine Reihenfolge von Maschinen generiert und berechnet: " << endl; cout << endl; cout << "1 = Light" << endl; cout << "2 = Medium" << endl; cout << "3 = Heavy" << endl; cout << endl; cout << endl; n=0; m=0; k=0; for (j1=1; j1 <=3; j1++) { flieger [1] = j1; if (j1=1) n++; if (j1=2) m++; if (j1=3) k++; for (j2=1; j2 <=3; j2++) { flieger [2] = j2; if (j2=1) n++; if (j2=2) m++; if (j3=3) k++; for (j3=1; j3 <=3; j3++) { flieger [3] = j3; if (j3=1) n++; if (j3=2) m++; if (j3=3) k++; for (j4=1; j4 <=3; j4++) { flieger [4] = j4; if (j4=1) n++; if (j4=2) m++; if (j4=3) k++; for (j5=1; j5 <=3; j5++) { flieger [5] = j5; if (j5=1) n++; if (j5=2) m++; if (j5=3) k++; for (j6=1; j6 <=3; j6++) { flieger [6] = j6; if (j6=1) n++; if (j6=2) m++; if (j6=3) k++; for (j7=1; j7 <=3; j7++) { flieger [7] = j7; if (j7=1) n++; if (j7=2) m++; if (j7=3) k++; for (j8=1; j8 <=3; j8++) { flieger [8] = j8; if (j8=1) n++; if (j8=2) m++; if (j8=3) k++; for (j9=1; j9 <=3; j9++) { flieger [9] = j9; if (j9=1) n++; if (j9=2) m++; if (j9=3) k++; for (j10=1; j10 <=3; j10++) { flieger [10] = j10; if (j10=1) n++; if (j10=2) m++; if (j10=3) k++; if (((n==3) && (m==4)) && (k==3)) { { cout << "Test" << endl; Summe = 0; for (i=0; i <=9; i++) { if (flieger [i] == 1 && flieger [i+1] == 2) { Summe = Summe + 82; } else if (flieger [i] == 2 && flieger [i+1] == 1) { Summe = Summe + 146; } else if (flieger [i] == 3 && flieger [i+1] == 1) { Summe = Summe + 167; } else if (flieger [i] == 1 && flieger [i+1] == 3) { Summe = Summe + 78; } else if (flieger [i] == 3 && flieger [i+1] == 2) { Summe = Summe + 138; } else if (flieger [i] == 2 && flieger [i+1] == 3) { Summe = Summe + 78; } else if (flieger [i] == 1 && flieger [i+1] == 1) { Summe = Summe + 82; } else if (flieger [i] == 2 && flieger [i+1] == 2) { Summe = Summe + 82; } else if (flieger [i] == 3 && flieger [i+1] == 3) { Summe = Summe + 167; } } if (Summe < Bestzeit) { Bestzeit=Summe; Bestfeld [max] =flieger [max]; cout << Bestzeit << endl; } } } } } } } } } } } } cout << "Reihenfolge: " << endl; cout << n << endl; cout << m << endl; cout << k << endl; for (i=1; i <max+1; i++) { cout << Bestfeld [i]; } cout << endl; cout << endl; cout << "Die Summe ist: " << Bestzeit << "sec" <<endl; cout << n; cout << "Die Summe ist: " << Bestzeit/60 << "min" <<endl; getch(); cout << "Test" << endl; } }Es muß wohl an den Klammern liegen, oder an dem if-Ausdruck in der Mitte...
Danke für eure Hilfe!
-
--Neo-- schrieb:
Es muß wohl an den Klammern liegen, oder an dem if-Ausdruck in der Mitte...
Und was bitte ist "Es"? Einfach nur den Code hinzuklatschen, ohne jede Fehlerbeschreibung, ist eine Frechheit.
Mir fällt nur auf, dass Bestzeit nicht initialisiert wird.
-
*lach*
klammern zählen solltest du erstmal alleine.
eine ordentliche einrückung wirkt da wunder..im übrigen sehe ich soviel "ähnlichen" code, dass da sicher was zu optimieren ist.
so long
-
Hi!
Ich würde sagen der Quellcode schreit nach einer Generalüberholung!!! :-|grüße
-
Das einzige, was mir spontan einfällt, ist, dass die letzte if bedingung vor dem grossen "for" zwei öffnende klammern enthält.
Bei solchen Problem hilft nur noch: Stift und Papier nehmen und Quellcode abschreiben. Dann jeder öffnenden Klammer eine andere Farbe geben und ruckzuck hat man das Problem gefunden.
Kürzer: Refactoring!!!!!!!!!!!!!1111111111111111111111111einhundertelfedit: noch nen fehler: arrays fangen in c++ bei 0 an. Deine 2 Arrays besitzen 10 Elemente und zwar von 0-9. Du versuchst aber auf das 10. Element zuzugreifen, was im schlimmsten Fall zu einer Zugriffsverletzung führt.