Originariamente inviato da elmapomapo
Ok il tuo funziona.

Ho provato a fare una funzione che addizionava gli array:
Codice PHP:
    int somma_arr(){

        
int f;

        for (
0numerif++) {

            
int v f++;

            
int somma arr[f] + arr[v];

        }

        
printf("Bene la somma dei tuoi caratteri e': %d\n"somma);

        return 
somma;

    } 
Ma da un errore alla prima riga cioè alla definizione della funzione!
Ho provato a compilare il tuo codice aggiungendo come variabili globali

codice:
int numeri[10];
int arr[10];
E in ogni caso non compila. Non so perchè ti dia l'errore alla dichiarazione di funzione, sei sicuro di aver inserito o il prototipo (o cmq di averla dichiarata prima di usarla)?

Per sommare un array fai così:

codice:
int somma()
{
    int somma = 0;

    for (int i = 0; i < lunghezza_array; i++)
    {
        somma += arr[i];
    }

    return somma;
}
Nel tuo codice c'era il problema che non avresti calcolato la somma corretta. Supponiamo questo array:

codice:
int arr[] = { 1, 2, 3, 4 };
La somma corretta è 10, ok? Con il tuo algoritmo hai 7. Questo perchè (a parte che consideri 2 volte ogni membro dell'array) ad ogni ciclo sovrascrivi la somma calcolata finora. Queste sempre sperando di evitare un segmentation fault.

Questo perchè la lunghezza dell'array è 4. Se f = 3 --> v = 4. arr[4] non esiste --> segmentation fault.

Di più: se dichiari la variabile somma in quella posizione, avrai un errore anche su return. La variabile somma viene dichiarata all'interno del ciclo for, e una volta finito il ciclo, viene eliminata. somma non è visibile fuori dal blocco del ciclo for e quindi quando provi a fare "return somma" ti da un errore perchè la variabile non è visibile in quella posizione.

Ciao!