Calcolo la media di n voti

di il
14 risposte

Calcolo la media di n voti

Ciao a tutti,
dovrei scrivere un programma che mi calcoli la media di n voti, la cui sequenza è terminata da un numero negativo.
Io ho cercato di impostare il programma con la funzione while, ma non riesco a trovare l'errore che ho fatto.
Mi potreste dare un mano?

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

int main ()
{
   int x, y, n, media;
   
   y = 0;  
   n = 1;

   while (x > 0)
   {
       printf ("Inserire un numero: ");
       scanf ("%d", &x);  
	   
	   media = (x + y) / n;
	   
	   y = y + x;  
       n = n + 1;
   }
      
   printf ("La media è: %d\n", media);
   return EXIT_SUCCESS;
}

14 Risposte

  • Re: Calcolo la media di n voti

    Prima di tutto ti invito a leggerti il regolamento, per quanto riguarda il titolo e l'utilizzo del tag CODE.

    Per quanto riguarda l'esercizio in sé ho trovato diversi errori.
    Innanzitutto non inizializzando la variabile x essa può assumere un qualsiasi valore "casuale", per cui non è detto che sia soddisfatta la condizione del while e quindi potresti uscire subito dal loop (e quindi ti stamperebbe subito il contenuto della variabile "media", anch'esso casuale).

    In secondo luogo se vuoi che il calcolo della media avvenga all'interno del loop allora questa operazione deve avvenire dopo l'incremento di n e il calcolo della somma. Questo perché se no calcoleresti una media sbagliata.

    Quindi farei qualcosa del genere:
    
    Y=0;
    n=0;
    media=0;
    
    //prendi il valore di x dall'input
    
    while (...) {
        n++;
        y  += x;
        media = y/n;
    }
    
    if (n>0) {
       printf("La media è: %d\n", media);
    } else {
        printf("Sequenza non valida\n");
    }
    
  • Re: Calcolo la media di n voti

    Diversi problemi ...

    - la media non può essere un intero ...

    - nel ciclo calcolerai la somma dei voti e il loro numero, la media solamente una volta, fuori dal ciclo

    - il valore negativo di fine sequenza non devi sommarlo perché non fa parte della serie
  • Re: Calcolo la media di n voti

    
    int main ()
    {
        int input,n,count;
    
        printf("Calcolo media numeri inseriti,-1 to exit:\n");
    
        for (input = 0, n = 0, count = 0; input != -1; count++,n += input)
        {
            printf("\tnumero: ");
            scanf ("%d", &input);
            fflush(stdin);
        }
        ++n;
        --count;
        printf ("La media è: %d\n", n / count);
    
        return EXIT_SUCCESS;
    }
    
    
    Perchè la media non può essere un intero???????
  • Re: Calcolo la media di n voti

    Grazie Della per la risposta.
  • Re: Calcolo la media di n voti

    In secondo luogo se vuoi che il calcolo della media avvenga all'interno del loop allora questa operazione deve avvenire dopo l'incremento di n e il calcolo della somma
    Questo anche se inizializzo la n a 1?
  • Re: Calcolo la media di n voti

    Se inizializzi la n a 1 il programma funziona lo stesso, però se con n indichi la quantità di numeri che hai letto allora commetti un errore "semantico"


    Sent from my iPhone using Tapatalk - now Free
  • Re: Calcolo la media di n voti

    vbextreme ha scritto:


    Perchè la media non può essere un intero???????
    Se hai 2 voti

    7 e 6

    quale sarà la media, vbextreme?
  • Re: Calcolo la media di n voti

    Se hai 2 voti

    7 e 6

    quale sarà la media, vbextreme?
    6,sempre il numero piu basso! eheheheh
  • Re: Calcolo la media di n voti

    vbextreme ha scritto:


    Se hai 2 voti

    7 e 6

    quale sarà la media, vbextreme?
    6,sempre il numero piu basso! eheheheh
    Se scherzi, ci facciamo una risata ... altrimenti
  • Re: Calcolo la media di n voti

    Se scherzi, ci facciamo una risata ... altrimenti
    dici che avrei dovuto generare un numero casuale fra 6 e 7 ???? sarebbe stato piu realistico???eheheheh
    ovvio che scherzo,secondo te che significa eheheheheheheh
  • Re: Calcolo la media di n voti

    Allora scherzavi anche quando hai fatto la domanda sul perché non si usa un intero ... vero ?
  • Re: Calcolo la media di n voti

    Si
    non sapendo che numeri si hanno per input non si puo sapere se gli interi non vanno bene.
    Se infatti si calcolano i voti in base centesimale allora gli interi vanno benissimo:
    (60+70)/2=65
  • Re: Calcolo la media di n voti

    vbextreme ha scritto:


    si
    Se infatti si calcolano i voti in base centesimale allora gli interi vanno benissimo:
    (60+70)/2=65
    Andiamo su ...
  • Re: Calcolo la media di n voti

    Come sei serioso.........
Devi accedere o registrarti per scrivere nel forum
14 risposte