Originariamente inviato da valia
appunto, perché in un caso chiama la funzione con il restante array e continua fino a quando non sto chiamando quello alla posizione 0.
codice:
void stampa(float A[],int dim) {
if (dim == 0){
return;
} else {
stampa(A, dim-1);
cout << A[dim-1] << " ";
}
}
La stampa a video avviene DOPO aver finito di scorrere l'array, se hai un array di 3 elementi, fai
1. dim = 3, chiami stampa con l'array e dim = 2
2. dim = 2 chiami stampa con l'array e dim = 1
3. dim = 1 chiami stampa con l'array dim = 0
4. dim = 0 ritorni --> ritorni dalla chiamata 3 (l'ultima), quindi stampi l'elemento alla posizione dim-1 (cioè la posizione 0), il primo elemento.
Fatta la stampa finisci
5. è finita la chiamata alla stampa fatta con dim = 2, stampi il precedente (la posizione 1)
e via dicendo.
prova a fare quello che ho fatto sopra io nel caso in cui hai scambiato le posizioni (l'altra stampa)