Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c++]Stampare un float

  1. #1
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219

    [c++]Stampare un float

    Ho scritto questo semplice programma che tra le varie cose stampa la media di tre interi.
    Il problema è che siccome per effettuare la media bisogna fare una divisione, il risultato sarà di tipo float ma i tre numeri sono interi.Allora ho dichiarato una variabile di tipo float che ho chiamato media, assegnandogli il valore della somma dei tre interi diviso 3.Il problema è che mi stampa comunque un intero,come fare per convertirlo in float?

    codice:
    #include <iostream>
    
    using namespace std;
    
    // uso degli operatori per stabilire la relazione tra due numeri
    
    int main()
    {
        int num[3],i,min,max;
        float media;
        cout <<"Inserisci tre interi:\n";
        for(i=0;i<3;i++)
            cin>>num[i];
        media=(num[0]+num[1]+num[2])/3;
        cout <<"La media e' "<<media;
        cout <<"\nLa somma e' "<<num[0]+num[1]+num[2];
        min=num[0];
        max=num[0];
        for(i=0;i<3;i++)
            if(max<num[i])
                max=num[i];
        cout <<"\nIl maggiore e' "<<max;
        for(i=0;i<3;i++)
            if(min>num[i])
                min=num[i];
        cout<<"\nIl minore e' "<<min<<"\n";
        return 0;
    }

  2. #2
    Un trucco che dovrebbe funzionare è dividere per 3.0 invece che per 3, altrimenti effettui un cast esplicito della somma a float:
    codice:
    media=(float)(num[0]+num[1]+num[2])/3;
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    L' ho riscritto così allora:
    codice:
    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    
    
    int main()
    {
        int voto=0,i=1;
        float media=0;
        while(voto!=-1)
        {
            media+=voto;
            cout << "Inserire il " << i <<"o voto, -1 per terminare: ";
            cin >>voto;
            i++;
        }
        media=(float)(media/(i-1));
        cout <<"\nla media e' " <<setprecision(3)<<media <<"\n";
        return 0;
    }
    E funziona.

  4. #4
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    meglio fare il casting diretto ad almeno 1 degli operatori, e non dopo lo svolgimento dell'operazione, in pratica

    codice:
    media=(float)(media/(i-1));
    diventa

    codice:
    media=(((float)media)/(i-1));

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.