Fortlaufende Addition innerhalb von Arrays
-
Nabend zusammen.
Ich bin neu hier im Forum und ebenso unerfahren im Umgang mit C. Ich habe folgendes Problem und konnte bis jetzt keine Lösung finden.
Ich habe ein Array mit z.B den Werten arr[5] = {a, b, c, d, e}
Nun möchte ich die Werte addieren, aber nicht z.B a+b oder b+e, sondern fortlaufend. Also a, a+b, a+b+c, a+b+c+d, a+b+c+d+e und diese Werte dann auf eine vertikalen Linie ausgeben.
ich nehme an das dies über eine for() Schleife passieren müsste, doch hab ich es bis jetzt nur geschaft das a+b, b+c, c+d.....usw miteinander addiert werden.
Danke für die Hilfe.
Mfg
-
Tipp:
Sei letztes = a + b, dann ist a + b + c = letztes + c. Nenne das Ergebnis von letztes + c auch wieder letztes. Dann ist a + b + c + d = letztes + d.
Das sollte genug Inspiration für deine Hausaufgabe sein.
-
Wenn du schon a+b hast, kannst du im nächsten Durchlauf auch noch c dazu addieren und dann d ....
Zeig mal was dus bis jetzt hast.
-
soweit bin ich gekommen.
double arr1 [11] = {0.0, 3.0, 1.9, 2.2, 2.5, 3.5, 4.2, 5.5, 2.5, 4.9, 2.0}
for(i=0; i<11; i++)
{
summe = arr1[i]+arr1[i+1];
printf("%.1f\n ", summe);
}
-
Und mit den Tipps, die du bekommen hast?
-
Dein Array arr1 hat 11 Elemente, durchnummeriert von 0 bis 10.
Wenn das i in deiner Schleife bei 10 angekommen ist, greifst du auf das Element 11 (bei arr1[i+1]) zu. Das existiert nicht.
-
du machst immer aktuelles+nächstes und gibst das aus.
also für en array mit 4 elementen a,b,c,dgibst du aus:
a+b
b+c
c+d
d+???was ja schonmal nicht das is was du willst und auch nicht funktionieren wird weil das element nach d nicht existiert du aber darauf zugreifst in deinem letzen durchlauf.
Wie oben schon gesagt solltest du den ansatz verfolgen und dir noch eine variable "letzte" einfügen. Denn das was du ausgeben willst ist ja immer das letzte ergebnis + die aktuelle zahl im array also sieht das dann so aus:
a + b
-> ausgeben und in letzte schiebenletzte + c
-> ausgeben und in letzte schiebenletzte + d
-> ausgeben und in letzte schiebenusw
gruß
-
@tobZel: Wenn du jemandem helfen willst, dann schreib auch Deutsch und nicht klingonisch.
-
summe = summe + arr1[i] ?