Originariamente inviato da elmapomapo
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!
Che errore ti da?

Ad ogni modo in questo pezzo di codice ci sono diversi problemi:

1. Incrementi la variabile di ciclo 2 volte: in questo modo salti metà degli elementi.
2. Dichiari una variabile locale al for, "somma", e poi la usi al di fuori del for stesso. È un errore, "somma" è come se non esistesse al di fuori di quel ciclo!

Una possibile soluzione è la seguente:
codice:
int somma_arr(){
  int i;
  int somma = 0; /* e' importante inizializzare a zero questa variabile!! */

  for (i = 0; i < numeri; i++) {
    somma += arr[i];
    /* oppure: somma = somma + arr[i]; */
  }

  printf("La somma e\' %d\n", somma);
  return somma;
}
Ho dato per scontato che "numeri" e "arr" siano variabili globali. Se sono dichiarate internalmente al main ovviamente non sono visibili in somma_arr ed in qualche modo dovrai passarle:

codice:
#include <stdio.h> 
#include <stdlib.h> 

/* prototipo della funzione */
int somma_arr(int *, int);

int main() { 
    char nome[10]; 
    int arr[10]; 
    int numeri;
    int somma;
    int i; 
    
    printf("Ciao, come ti chiami (MAX 10 caratteri)? "); 
    scanf("%s", nome); 

    printf("Bene il tuo nome è: %s\n", nome); 
    printf("Quanti numeri vuoi addizionare (MAX 10)? "); 

    scanf("%d", &numeri);

    for (i = 0; i < numeri; i++) { 
        printf("Inserisci il numero i-esimo: "); 
        scanf("%d", &arr[i]); 
    } 

    /* Chiama la funzione che fa la somma. */
    somma = somma_arr(arr, numeri);

    printf("La somma dei numeri che hai inserito e\' %d\n", somma);

    return 0; 
}

/* Funzione di somma. */
int somma_arr(int *arr, int numero_elementi){
  int i;
  int somma = 0;

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

  return somma;
}