Es geht nicht um die Lösungen von Übungen, ich brauche nur eine logische Erklärung. Die Lösung habe ich selber.
Also ziehe mich bitte nicht gleich vor Gericht !!!
gehen wir schrittweise vor, und ich werde zu erklären versuchen wieso man solche Ausgaben bekommt.
Dein Teilprogramm:
n = p = 0 ;
while (n<=8)
n+= p++ ;
==> n=10 <== Ausgabe
z.B definieren wir zu erst:
int i <---- darstellt die Iterationen der Schleife , ausgehend von 1.
int r <-----Ergebnis der Rechnung n+= p++
n+= p++ ----> n=n+p zusätzlich wird p um 1 post inkrementiert also nach der Zuweisung ( n= n+p )
Jetzt schreiben wir eine kleine Tabelle, um mehr Klarheit zu schaffen:
i n p r
1 0 0 0
2 0 1 1
3 1 2 3
4 3 3 6
5 6 4 10
6 10 5 15 <---ab hier wird die Bedingung von der while-Schleife (n <= 8) verletzt da n=10 .
Somit sind deine Ausgaben nicht richtig wiedergegeben !!!