Hilfe für Anfänger bei verschachtelten For Schleifen und Vektoren
-
cAnfänger[12] schrieb:
Wie löse ich das Problem in Zeile 75?
Gar nicht, da es dort kein Problem gibt.
Schau die lieber zunächst mal Zeilen 57 und 64 an (beide falsch).
Und beachte die Hinweise weiter oben, d.h. 3 und 4 NICHT hardcoden. Außerdem benutzt du zwei verschiedene i-Variablen in verschachtelten Schleifen. Denkt man zumindest. Dann stellt man fest: deine Einrückung ist furchtbar. Die 2. Schleife mit i als Zähler ist nur falsch eingerückt! Rücke als allererstes ordentlich ein!!einself!!!
-
Danke werde alles berücksichtigen. Klappt jetzt. Habe die zweiten Parameter wieder selbst bestimmt. Muss lernen wie es mit size () geht oder den Iteraroren. Grüße
Edit;
Ich bin mitlerweile bei 7 stellen. Alles wunderbar nur bei acht Stellen macht es nur bis k z.B. .
Gibt es Limitierungen in irgendeiner Form?
170000 Werte sind noch nicht so viele oder?
Ist es ok 350 Zeilen Code anzuhängen?
-
cAnfänger[12] schrieb:
Muss lernen wie es mit size () geht oder den Iteraroren. Grüße
Beispiele:
// irgeneinen vector definieren std::vector<int> v = {1, 3, 6, 14}; // Loop mit index: for (size_t i = 0; i < v.size(); ++i) std::cout << "Index " << i << " -> " << v[i] << '\n'; // Loop mit begin/end: for (auto it = v.begin(); it != v.end(); ++i) std::cout << *it << '\n'; // Loop ohne Index/Iterator (bevorzuge dies, wenn möglich): for (const auto &i : v) std::cout << i << '\n';
-
cAnfänger[12] schrieb:
Ich bin mitlerweile bei 7 stellen. Alles wunderbar nur bei acht Stellen macht es nur bis k z.B. .
Gibt es Limitierungen in irgendeiner Form?
170000 Werte sind noch nicht so viele oder?
Es gibt Grenzen, aber die sind eher theoretischer Art. 170000 ist lächerlich wenig für einen handelsüblichen Computer. Viel wahrscheinlicher ist, dass in deinem Programm weitere Fehler sind. Dein Beispielcode war schließlich bereits voller Fehler, und aus deinen Bemerkungen schließe ich, dass du einen ganz anderen Code vorliegen hast als den, den du uns gezeigt hast. Dieser andere Code wird fast mit Sicherheit noch mehr Fehler enthalten.
Ist es ok 350 Zeilen Code anzuhängen?
Nein. Wie man Probleme nachstellbar und nachvollziehbar macht
-
Gut dann muss ein Fehler im Code sein.
Es ist der gleiche Code nur mit mehr Buchstaben/ Stellen.Hier auf ideone danke für eure Zeit.
-
Hier mal ein paar Punkte. Aufgrund der Formatierung habe ich das alles aber nicht auf Funktionalität überprüft.
Punkt 1: Formatierung grauenhaft. Saubere und einheitlich einrücken und Klammern setzen!
Punkt 2: Hardgecodete Integer sind nicht schön.
Punkt 3: Bennene deine Variablen vernünftig.
Punkt 4: Bleib bei einer Sprache für deine Bennenung (drei vs. three). Am besten erfolgen Benennungen auf englisch.
Punkt 5: Strukturiere deinen Code und schreibe Funktionen.
Punkt 6: Irgendwie erschließen sich mir die ganzen erases nicht. Du löschst irgendwelche Zeichen aus den Strings, machst aber hinterher höchstens mit einem Teil davon noch irgendwelche Vergleiche.
Punkt 7: Was erwartest du, was die Ausgabe von: std::cout << neun[177240] sein sollte.
-
cAnfänger[12] schrieb:
Habe die zweiten Parameter wieder selbst bestimmt. Muss lernen wie es mit size () geht oder den Iteraroren.
Ernsthaft?
-
Endlich fertig, vielen dank für die tollen Tipps. Jetzt noch alle Permutationen mit dem Code aus Beitrag 3 abspeichern.
Grüße
-
sh = neun[i]; sr = neun[i]; so = neun[i]; s3 = neun[i]; s4 = neun[i]; s5 = neun[i]; s6 = neun[i]; s7 = neun[i]; s8 = neun[i]; sr.erase (0,7); so.erase (1,7); s3.erase (0,1); s3.erase (1,6); s4.erase (0,2); s4.erase (1,5); s5.erase (0,3); s5.erase (1,4); s6.erase (0,4); s6.erase (1,3); s7.erase (0,5); s7.erase (1,2); s8.erase (0,6); s8.erase (1,1);
*Schauder*
So eine Einrückung ist doch wohl nicht dein Ernst. Wie schafft man das?(Vom Inhalt des Codes reden wir lieber gar nicht)
-
Variablen mit den Namen "eins" bis "neun" sind ein eindeutiges Zeichen, dass hier irgendwas gehörig flasch läuft. Ich habe ne Aufgabe, die dir das Problem nur allzu deutlich aufzeigt: erweitere das Programm so, dass der Benutzer die Länge eingeben kann (auch 100 oder 76 sollen mögliche Eingaben sein).