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;
}