Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    residenza
    Parma
    Messaggi
    7

    programmazione c++ semplice: esercizio con ciclo

    ciao ragazzi!! Scusate per l'ignoranza, ma sono alle prime armi..
    devo realizzare IN C++ un programmino dove inserendo n voti in trentesimi, esso restituisca la media aritmetica di essi, sia in 30esimi che in 110esimi.
    Piu o meno l'ho impostato, ma ho qualche problemino con l'esecuzione.. windows mi da errore dicendo che il programma ha smesso di funzionare.. mai successo altre volte!! XD cosa ho sbagliato? vi scrivo qui di seguito il codice del programma, spero che qualcuno mi sappia aiutare!! Grazie in anticipo..
    codice:
    #include <iostream>
    using namespace std;
    int main()
    {
    int voto;
    int somma=0;
    int conto=0;
    float media_30=(somma/conto);
    float media_110=((media_30/30)*110);
    
    
    cout<<"Questo è un programma che calcola la media aritmetica dei voti inseriti in trentesimi."<<endl<<"La media sarà espressa sia in trentesimi che in 110esimi."<<endl<<endl;
    cout<<"Immettere un voto (negativo per smettere):"<<endl<<endl;
    cin>>voto;
    while(voto>0)
    {
    conto++;
    somma+=voto;
    cout<<"Immettere un voto (negativo per smettere):"<<endl;
    cin>>voto;    
    }
    if(conto==0)
        {
        cout<<"Non hai inserito nessun voto!"<<endl;
        }
    else
    {
    cout<<"Hai immesso "<<conto<<" voti"<<endl;
    cout<<"La media dei tuoi voti su base 30 e: "<<media_30<<endl;
    cout<<"La media dei tuoi voti su base 110 e: "<<media_110<<endl;
    }
    return 0;
    }
    Ultima modifica di MItaly; 17-12-2014 a 02:07 Motivo: Tag CODE

  2. #2
    codice:
    somma/conto
    Stai facendo una divisione intera, con conto che è uguale a zero e quindi genera un errore di divisione per zero.
    Devi:
    - spostare dopo il calcolo della media (non è che se scrivi prima la formula viene poi magicamente aggiornata in base al cambiamento delle variabili, le variabili memorizzano solo il valore calcolato);
    - convertire uno dei due operandi a float, altrimenti in caso di divisione tra due int viene effettuata una divisione intera (che tronca il risultato)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2014
    residenza
    Parma
    Messaggi
    7
    ho modificato come mi hai suggerito e funziona!! grazie ti devo un favore!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.