La traccia è questa:
Rappresentare il programma relativo all'algoritmo in grado di:
. acquisire da tastiera elementi interi non nulli che compongono il vettore V (il valore
nullo introdotto da tastiera pone fine all'acquisizione, non al programma, e non
appartiene al vettore acquisito),
. ricercare, in un unico ciclo, la media dei li valori pari del suddetto vettore
Quando lo faccio partire mi restituisce come media sempre 0, come mai?codice:#include <stdio.h> #include <conio.h> #define max 100 /*PROTOTIPI*/ void input(int v[], int *dim); double med(int v[], int dim, double *media); void output(int v[], int dim, double media); /*FUNZIONE PRINCIPALE*/ main() { int v[max], dim; double media; input(v, &dim); med(v, dim, &media); output(v, dim, media); return 0; } void input(int v[], int *dim) { int val; *dim=0; do { printf("Inserire valore v[%d]: ", *dim); scanf("%d", &val); v[(*dim)]=val; (*dim)++; } while((val!=0) && (*dim<max)); if(val==0) (*dim)--; } double med(int v[], int dim, double *media) { int somma=0, m=0, i; for(i=0;i<dim;i++) { if(v[i]%2==0) { somma+=v[i]; m++; } } *media=somma/m; } void output(int v[], int dim, double media) { int i; printf("\nVettore\n"); for(i=0;i<dim;i++) { printf("%d ", v[i]); } printf("\n\nLa media dei valori pari: %d\n", media); }
Mi spieghereste cosa sbaglio?
Vi ringrazio

Rispondi quotando
