Question 4: show the output (recursion) [6]
Show the precise output produced by the program below.
#include <cstdio> void f1(int r, int c); void f2(int c); int main() { f1(3,4); } void f1(int row, int col) { if (row > 0) { f1(row - 1, col - 1); f2(col); } } void f2(int c) { if (c > 0) { printf("%d", c); f2(c - 1); } else { printf("\n"); } } |
Sample solution: 21 321 4321 Explanation f1(3,4) calls f1(2,3) calls f1(1,2) calls f1(0,1) which simply ends and returns calls f2(2) which prints "21\n" ends and returns calls f2(3) which prints "321\n" ends and returns calls f2(4) which prints "4321\n" returns to main |