Ciao a tutti, buona domenica innanzitutto!
Devo fare un'esercizio (1° anno ingegneria informatica) su array e funzioni: in particolare mi chiede di "Si definisca una procedura ricorsiva void somme2(int l1[], int length) che, ricevuto in ingresso un array l1 di interi, stampi a video gli interi dell’array di ingresso il cui valore è uguale alla somma dei due interi seguenti nell’array (a tal fine, gli ultimi due numeri di un’array sono automaticamente esclusi)".
Ora: con la ricorsiva non sono stato in grado di svolgere l'esercizio così ho cercato di farla in modo "normale"! Ma purtroppo compila male: stampa a video anche numeri "a caso"...
Questo è il mio codice:
codice:#include <stdio.h> #define N 10 int let_scrit (int vet_1[], int dim_v) { int i=0, x; do{ printf ("Inserire un valore: "); scanf ("%d", &x); if (x != 0){ vet_1[i]=x; i++;} } while (x != 0 && i<dim_v); return i; } void somme2 (int l1[], int length){ int i=0, j, k=0, v_3[length]; let_scrit (l1, length); do{ if (l1[i]== l1[i+1]+l1[i+2]){ v_3[k]=l1[i];} i++; k++; } while (i<length-2); for (j=0; j<k; j++) printf ("%d \n", v_3[j]); } int main() { int v[N]; somme2 (v, 10); return 0; }

Rispondi quotando