Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803

    [c] media

    {
    int contatore, voto = 0;
    int totale;
    float media;

    printf ("Inserisci il voto: ");
    scanf("%d", &voto);

    while (voto != -1) {
    totale = totale + voto;
    contatore = contatore + 1;
    printf("Inserisci il voto, per finire -1: ");
    scanf("%d", &voto);
    }
    if (contatore != 0)
    {
    media = (float) totale/contatore;
    printf("La media è %.2f", media);
    }
    else
    printf("Non sono stati inseriti voti");

    return 0;
    }
    nessun errore di sintassi...xke non funziona?la media mi da sempre 1,xx..anche quando gli input sono > di 100...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Contatori e totalizzatori devono essere azzerati ...

    int contatore = 0, voto = 0;
    int totale = 0;

    Se usi gli interi per i voti e il totale, non potrai inserire i mezzi voti ...

  3. #3
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    codice:
    int contatore, voto = 0;
    ho sbagliato così?
    sul libro voto e totale sono int mo vedo di modificarli da me...

  4. #4
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    #include<stdio.h>
    int main ()
    {
    float contatore, voto = 0;
    int totale;
    float media;

    printf ("Inserisci il voto: ");
    scanf("%f", &voto);

    while (voto != -1) {
    totale = totale + voto;
    contatore = contatore + 1;
    printf("Inserisci il voto, per finire -1: ");
    scanf("%f", &voto);
    }
    if (contatore != 0)
    {
    media = (float) totale/contatore;
    printf("La media è %.2f", media);
    }
    else
    printf("Non sono stati inseriti voti");

    return 0;
    }

    è proprio frustrante sbagliare sempre qlc (ovviamente err logico).....

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il fatto degli interi o float per il voto e' un miglioramento ...

    L'errore nel calcolo deriva dal fatto che non hai azzerato le variabili ...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da ant_alt
    è proprio frustrante sbagliare sempre qlc (ovviamente err logico).....
    Insisti che ce la farai ...

    Ma impara dagli sbagli ...

  7. #7
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    codice:
    #include<stdio.h>
    int main ()
    {
    int contatore = 0;
    float voto = 0;
    float totale = 0;
    float media;
    
    printf ("Inserisci il voto: ");
    scanf("%f", &voto);
    
    while (voto != -1) {
    	totale = totale + voto;
    	contatore = contatore + 1;
    	printf("Inserisci il voto, per finire -1: ");
    	scanf("%f", &voto);
    }
    if (contatore != 0)
    {
    	media = (float) totale/contatore;
    	printf("La media è %.2f", media);
    }
    else
    printf("Non sono stati inseriti voti");
    
    return 0;
    }


    ora funziona....

    xò c'è un dubbio k mi porto dietro da molto tempo..
    quando uan variabile è int si fa
    printf("inserisci un numero: ");scanf("%d",numero);
    con il float
    printf("inserisci: ");scanf("%f",numero);

    ..e poi quando vado a fare una divisione con questo numero :
    printf("il risultato è %.2f") ;
    dove 2 sono le cifre dopo la virgola vero?..ci sn altre differenze tra int e float ?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da ant_alt
    xò c'è un dubbio k mi porto dietro da molto tempo..
    quando uan variabile è int si fa
    printf("inserisci un numero: ");scanf("%d",numero);
    con il float
    printf("inserisci: ");scanf("%f",numero);

    ..e poi quando vado a fare una divisione con questo numero :
    printf("il risultato è %.2f") ;
    dove 2 sono le cifre dopo la virgola vero?..ci sn altre differenze tra int e float ?
    Intanto non dimenticare il fatto che e' necessario un puntatore alla scanf ... e quindi

    scanf("%d",&numero);

    e

    scanf("%f",&numero);

    Il formato che hai usato indica le cifre dopo la virgola.

    Le differenze tra int e float non sono solamente nell'input ma, principalmente, nel tipo di dato che possono rappresentare ...
    Conosci questa differenza ?

  9. #9
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    Originariamente inviato da oregon
    Intanto non dimenticare il fatto che e' necessario un puntatore alla scanf ... e quindi

    scanf("%d",&numero);

    e

    scanf("%f",&numero);

    Il formato che hai usato indica le cifre dopo la virgola.

    Le differenze tra int e float non sono solamente nell'input ma, principalmente, nel tipo di dato che possono rappresentare ...
    Conosci questa differenza ?
    bè si rappresentato i numeri cn la virgola


    un'altra cosa:
    nel mio codice quando c'è questo:
    media = (float) totale/contatore;
    posso evitare quel (float) ?a che serve ?per indicare che è una divisione con la virgola?..sono tutti e due fattori float quindi credo non serva....il programma poi funziona lo stesso.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi evitare il cast (float) dato che i dati sono float ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.