verständnisschwierigkeiten beim ausgabe
-
HAllo Leute,
morgen habe ich zwischentest und muss ausgaben schreiben. auf diese beispiel verstehe ich die ausgabe nichtwoher bekomme ich die ausgabe TRNE ?
#include <iostream> using namespace std; char s[]="OSTERN"; void f(int k) { if (s[k]=='\0') return; cout<< s[k];//hier wird R ausgegeben f(k+2);//hier wird f(4) aufgerufen und also R ausgegeben und //wird automatisch f(6) aufgerufen und wird mit return beendet cout<< s[k+1]; } int main() { f(2) ; cout <<endl; return 0; }danke euch
-
Der Kommentar in Zeile 9 ist falsch.
Aufruf f(2) (aus main): Zeile 9: k == 2, Ausgabe 'T' Aufruf f(4) (aus f(2), Zeile 10): Zeile 9: k == 4, Ausgabe 'R' Aufruf f(6) (aus f(4), Zeile 10): k == 6, Abbruch. Eine Ebene zurück Zeile 11: k+1 == 5, Ausgabe 'N' Zeile 12: Funktionsende. Eine Ebene zurück Zeile 11: k+1 == 3, Ausgabe 'E' Zeile 12: Funktionsende. Eine Ebene zurück Ende. Gesamtausgabe: TRNEDein Problem ist auch nicht die Ausgabe an sich, sondern das Verständnis des Programmverlaufes, insbesondere Rekursion.