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