Salve a tutti. La mia intenzione e' quella di scrivere un programma che, inserite un certo numero di misure, ti restituisce:
1) il numero massimo
2) il numero minimo
3) la dispersione (massimo-minimo)
4) la somma dei numeri inseriti
5) la media dei numeri inseriti
6) l'incertezza relativa
7) l'incertezza percentuale
Il programma riesce a calcolarmi il numero massimo e minimo, la dispersione e la somma totale dei numeri. Il problema sorge con la media aritmetica, poichè quando faccio andare il programma mi esce scritto "la media aritmetica e' 1.#INF". Ho cercato a cosa si poteva riferire questo tipo di errore ed ho trovato che è identificabile con la divisione per zero. In effetti il mio N, che è il numero di misure che l'utente vuole inserire, va man mano svuotandosi mentre si inseriscono le misure, e quindi il programma alla fine trova N=0 e non può darmi la media. Il problema è che senza la media non posso calcolare tutte le altre cose![]()
Cosa posso fare ? Spero di essere stato abbastanza chiaro.
Questo è il codice che ho scritto fin'ora:
codice:#include <stdio.h> #include <stdlib.h> int main(){ float N; // indica il numero di misure che l'utente vuole inserire float numero; // indica le misure man mano inserite dall'utente float MAX, MIN; // MAX e MIN indicano il numero massimo e minimo inseriti float totale; // indica la somma dei numeri inseriti float media; // media dei numeri inseriti float dispersione; // dispersione --> (max-min) float incertrel; // incertezza relativa --> dispersione/media float incertperc; // incertezza percentuale --> incertezza relativa * 100 printf("Quante misure vuoi inserire? "); scanf("%f", &N); if (N<=0){ printf("Errore. Il numero inserito non e' positivo"); } else { printf("Inserisci una misura: "); scanf("%f", &numero); N=N-1; MAX=numero; MIN=numero; totale=numero; while (N>0){ printf("Inserisci una misura: "); scanf("%f", &numero); if (numero>MAX){ MAX=numero; } else if (numero<MIN){ MIN=numero; } N=N-1; totale=totale+numero; } printf("Il numero massimo inserito e' %.2f, il numero minimo e' %.2f.\n", MAX, MIN); dispersione=MAX-MIN; printf("La somma totale dei numero e' %.4f. La dispersione e' %.2f.\n", totale, dispersione); media=totale/N; printf("La media aritmetica e' %.4f.\n", media); system("PAUSE"); } }


Rispondi quotando

