Ciao a tutti!
Sto seguendo un corso di programmazione in C. Nella prova d'esame viene richiesto di creare delle funzioni ricorsive.
Credo di aver capito il meccanismo della ricorsione ma negli esercizi ci viene richiesto di non fare uso di variabili e/o statiche per risolvere problemi che sarebbero altrimenti banali se queste si potessero usare. Per esempio un esercizio degli anni passati chiede:
definire una procedura ricorsiva che dato un vettore A di interi distinti di dimensione non nulla e la sua lunghezza, lo modifica facendo in modo che ogni A[i] assuma il valore della somma degli elementi precedenti e dell'elemento stesso. Nella soluzione non possono essere utilizzati vettori di supporto, né strutture dinmiche.
ad esempio se il vettore iniziale fosse 5 4 3 7 8 2
il vettore modificato dalla procedura sarebbe: 5 9 12 19 27 29
ringrazio in anticipo chiunque abbia il buon cuore di aiutarmi.
Questo dovrebbe essere il main:
codice:#include <stdio.h> #include <stdlib.h> #define DIM 8 main() { int i; int* vet[DIM]; printf("Inserisci gli elementi dell' array:\n"); for (i = 0; i < DIM; i++) { printf("> "); scanf("%d", *vet); } funzione(vet[DIM], DIM); for (i = 0; i < DIM; i++) printf("%d\n", &v[i]); system("pause"); }