Cherrycoke
Mitglied
Hallo Community,
ich habe folgende Funktion aufgeschrieben:
Was wird denn nun ausgegeben, wenn ich dieser Funktion mit den Parametern 3 und 7 aufrufe?
Ich hätte gesagt:
x = 3, y = 7
x = 4, y = 6
x = 5, y = 5
x = 5, y = 5, z = 0
x = 4, y = 6, z = 1
x = 3, y = 7, z = 2
Wenn ich diese Funktion jedoch auf meinem Rechner aufrufe, ergibt die Ausgabe:
x = 3, y = 7
x = 4, y = 6
x = 5, y = 5
x = 5, y = 5, z = 0
x = 5, y = 5, z = 1
x = 4, y = 6, z = 2
Leider verstehe ich nicht, wie der Computer auf diese Ausgabe kommt. Ich verstehe nicht, wie die Zeile "x = 5, y = 5, z = 1" zustande kommt.
Danke für eure Hilfe!
ich habe folgende Funktion aufgeschrieben:
Code:
int z = 0;
int foo(int x, int y){
printf("x=%d, y=%d\n", x, y);
if (x < y)
z = 1 + foo(++x, --y);
printf("x=%d, y=%d, z=%d\n", x, y, z);
return z;
}
Was wird denn nun ausgegeben, wenn ich dieser Funktion mit den Parametern 3 und 7 aufrufe?
Ich hätte gesagt:
x = 3, y = 7
x = 4, y = 6
x = 5, y = 5
x = 5, y = 5, z = 0
x = 4, y = 6, z = 1
x = 3, y = 7, z = 2
Wenn ich diese Funktion jedoch auf meinem Rechner aufrufe, ergibt die Ausgabe:
x = 3, y = 7
x = 4, y = 6
x = 5, y = 5
x = 5, y = 5, z = 0
x = 5, y = 5, z = 1
x = 4, y = 6, z = 2
Leider verstehe ich nicht, wie der Computer auf diese Ausgabe kommt. Ich verstehe nicht, wie die Zeile "x = 5, y = 5, z = 1" zustande kommt.
Danke für eure Hilfe!