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");
    }
}