Ciao a tutti, devo fare una f.ne ricorsiva che somma gli elementi strettamente positivi di un vettore.
il prototipo della f.ne è:
int sum(int tab[N], int dim);
nn ho ancora capito bene la ricorsione......![]()
![]()
Ciao a tutti, devo fare una f.ne ricorsiva che somma gli elementi strettamente positivi di un vettore.
il prototipo della f.ne è:
int sum(int tab[N], int dim);
nn ho ancora capito bene la ricorsione......![]()
![]()
Debian Sarge 3.01a
Slackware 10.2
io avrei elaborato questa soluzione (che n funziona):
scusate ma nn mi andava il CODEcodice:int sum(int tab[], int dim){ if (dim==0) return 0; if (tab[dim]>0) return tab[0]+sum(tab,dim-1); }
Debian Sarge 3.01a
Slackware 10.2
dim indica la dimensione, quindi gli lementi del vettore vanno da 0 a dim-1. din inizialmente indica la dimensine effettiva, menter nelle chiamate ricorsive indica il prossimo indice da considerare. Ad ogni chiamata l'indice viene decrementato e quando è diventatno zero significa che tutte le posizioni del vettore sono state esaminate. Se l'elemento corrente è positivo lo sommi al resto della somma, se no ritorni solo il resto della somma:
codice:int sum(int tab[], int dim){ if(dim == 0) return 0; if(tab[dim - 1] > 0) return tab[dim - 1] + sum(tab, dim - 1); else sum(tab, dim - 1); }
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals
grazie....ero riuscito a farlo... dopo posto la mia soluzione.
è un attimo diversa perchè non ho messo il 3° else!!!
grazie comunque anx721!!!![]()
![]()
Debian Sarge 3.01a
Slackware 10.2
nell'ultima istruzione ho dimenticato ilreturn:
codice:int sum(int tab[], int dim){ if(dim == 0) return 0; if(tab[dim - 1] > 0) return tab[dim - 1] + sum(tab, dim - 1); else return sum(tab, dim - 1); }
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals