For-Anweisung, mal wieder!
-
Im letzten Durchlauf ist Additions_Zahlen[j] out of bounds.
edit: ok, vorm beantworten von schon länger geöffneten Threads nochmal auf f5 drücken...
-
@ prog_mux du musst einfach die Schleife bis size -1 laufen lassen.
-
huhu
Ja klar aber hab ich dann nich das problem das ich dann pracktisch immer das gleiche plus nehm? also zb:
Additions_Zahlen[1] + Additions_Zahlen[1]
das will ich ja nich
sorry nochmal wenn ich mich grad blöd anstell wie gesagt
Mux
-
for (int i = 0; i < Additions_Zahlen.size(); i++) { int j = i+1; Additions_Zahlen[i]+Additions_Zahlen[j] = ergebnisAddition; };- Gewöhne dir das Präinkrement an. Ein Präinkrement ist bei user-defined types schneller.
- Der Block einer for-Schleife muss nicht mit einem Semikolon abgeschlossen werden.
- Spare dir die temporäre Zwischenvariable j und schreibe stattdessen direkt:
ergebnisAddition = Additions_Zahlen[i]+Additions_Zahlen[i+1];- Gewöhne dir an, Namen von Objekten mit einem Kleinbuchstaben beginnen zu lassen. Das liest sich dann viel leichter.
- Gewöhne dir an, auf Englisch zu programmieren. Wenn schon Deutsch, dann vergib sinnvollere Namen als "Additions_Zahlen" (Welcher übrigens besser als "additions_zahlen" oder "additionsZahlen" geschrieben wird).
- Geschwungene Klammern haben ihre eigene Zeile verdient. -> Lesbarkeit
Meine Lösung mit einer Schleife würde dann wohl so aussehen:
int sum = numbers.front(); for(std::vector<int>::iterator iter = numbers.begin() + 1; iter != numbers.end(); ++iter) sum += *iter + *(iter - 1);Edit: Keine Ahnung, was deine Schleife eigentlich bringt, hab das mal so auf die Schnelle runtergetippt. Keine Garantie auf Fehlerfreiheit.
-
huhu
also erstmal danke für deine tipps, bin für sowas immer offen
aber wegen der namen, es is ein taschenrechner das hielt ich das für angebracht^^
Mux
-
Mal etwas grundlegendes: Im Kopf einer for-Schleife for(...;...;...) verwendet man nur Dinge, die beim Einstieg in die Schleife bereits bekannt sind. Sonst verwendet man besser eine while-Schleife.
Ich möchte deinen Code ungern nachvollziehen! 
-
berniebutt schrieb:
Mal etwas grundlegendes: Im Kopf einer for-Schleife for(...;...;...) verwendet man nur Dinge, die beim Einstieg in die Schleife bereits bekannt sind. Sonst verwendet man besser eine while-Schleife.
Ich möchte deinen Code ungern nachvollziehen! 
Worauf bezieht sich das?
-
hab ich mich auch grad gefragt

ja der code is wirklcih etwas durcheinander
-
An meinem Code ist nichts durcheinander, eine normale for-Schleife über einen Container.
C++0x ist da super:
for(auto& elem : container) do_something_with_elem;
-
nein meiner
deiner is ja gut 
-
ich dachte da spontan an <algorithm> .. google liefert sowas http://stackoverflow.com/questions/3221812/sum-of-elements-in-a-stdvector