È dato il seguente programma:
#includevoid f(int T[], int i, int dim) { if(i < dim) { f(T, 2*i+1, dim); printf("%d", T[i]); f(T, 2*i+2, dim); } } main() { int Q[8]={1, 2, 3, 4, 5, 6, 7, 8}; printf("ris = "); f(Q, 0, 8); } Cosa viene visualizzato a video dall'esecuzione di main()?
Soluzione: ris = 84251637
Osserva le chiamate e gli elementi di Q stampati a video
- f(0,8)
- f(1,8) 1 f(2,8)
- f(3,8) 2 f(4,8) 1 f(5,8) 3 f(6,8)
- f(7,8) 4 f(8,8) 2 f(9,8) 5 f(10,8) 1 f(11,8) 6 f(12,8) 3 f(13,8) 7 f(14,8)
- f(15,8) 8 f(16,8) 4 2 5 1 6 3 7
- 8 4 2 5 1 6 3 7