C Rekursion

Status
Für weitere Antworten geschlossen.

Danny787

Ensign
Registriert
Jan. 2007
Beiträge
180
Ich hab noch ein paar Probleme mit rekursive Funktionen, v.a. wenn eine Funktion sich selbst gleich mehrmals hintereinander aufruft.
Es sei z. B. folgende Funktion gegeben:

void h(float n) {

if( n > 4 ) {

h(n/2);
h(n/2);
printf("W")
h(n/2);
h(n/2);

}
else{
printf("E");
}

wenn ich die Funktion nun z.B. mit n = 9 aufrufe, was passiert dann genau?
1. Schritt wäre ja dann (9>4), also wird die if anweisung aufgerufen und die funktion ruft sich anschließend mit (4,5) auf. Dann wir ja erneut (4,5 > 4) überprüft und wieder wird die die if anweisung reingegangen. dann ruf sich die funktion mit 2,25 auf und geht daraufhin in die else anweisung, weil 2,25 nicht größer 4 ist oder?
Ich bin grad etwas verwirrt :)

Kann mir vielleicht jemand Schritt für Schritt erklären was in dieser Funktion genau passiert und wie die Ausgabe in der Konsole ausschaut?

Danke schonmal im voraus :)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben