Che errore ti da?Originariamente inviato da elmapomapo
Ho provato a fare una funzione che addizionava gli array:
Ma da un errore alla prima riga cioè alla definizione della funzione!Codice PHP:int somma_arr(){
int f;
for (f = 0; f < numeri; f++) {
int v = f++;
int somma = arr[f] + arr[v];
}
printf("Bene la somma dei tuoi caratteri e': %d\n", somma);
return somma;
}
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:
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: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; }
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; }

Rispondi quotando