c) (10 marks) Explain the function f_c(n, a[]) where n is a positive integer and
ID: 3605411 • Letter: C
Question
c) (10 marks) Explain the function f_c(n, a[]) where n is a positive integer and a is an array. void f_c1(int i, int j, int a[]); void f_c(int n, int a[n]) { f_c1(0, n-1, a); } void f_c1(int i, int j, int a[]) { int tmp; if (i >= j) return; tmp = a[i]; a[i] = a[j]; a[j] = tmp; f_c1(i+1, j-1, a); } In the part c), draw the stack activation records when function is executed for ret = f_c(5, a); where the array a = { 1, 2, 3, 4, 5 }. Since you are to submit your answer as an plain-text le, use so-called ASCII graphics, which should look like the following, for some other (imaginary") functions g and h:
+-------------------+
| h(x=3,y=2) |
+-------------------+
| h(x=5,y=3) |
+-------------------+
| g(n=3, a={1,2,3}) |
| return a={0,0,0} |
+-------------------+
| main |
+-------------------+
In the above example, the function g has an array argument, and for it we show the initial value ({1,2,3}) and also the value at the return from the function ({0,0,0})
Explanation / Answer
+-----------------------------------------+
| f_c1(3,1,a = { 1, 2, 3, 4, 5 }) |
+-----------------------------------------+
| f_c1(2,2,a = { 1, 2, 3, 4, 5 }) |
+-----------------------------------------+
| f_c1(1,3,a = { 1, 2, 3, 4, 5 }) |
+-----------------------------------------+
| f_c1(0,4,a = { 1, 2, 3, 4, 5 }) |
+-----------------------------------------+
| ret = f_c(5, a = { 1, 2, 3, 4, 5 }) |
+-----------------------------------------+
| main |
+-----------------------------------------+
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.