Salve a tutti, colgo l'occasione per augurare a tutti voi un felice natale.
Vi propongo il mio SEMPLICE problema:devo creare un programmino che calcoli il rapporto chilometri/litro di benzina mandati dall'untente in input da tastiera.Infine devo fare la media tra tutti i risultati ottenuti.
Vi propongo il mio codice:
Il problema è il seguente, nel momento il cui digito il valore sentinella, che sarebbe "a" e quindi -1, mi continua a far digitare b.Qualcuno riesce a spiegarmi il perchè, e come dovrebbe essere il codice corretto?grazie a tutti.codice:#include <iostream> #include <iomanip> main() { using namespace std; int contatore=0, a, b, somma=0; double c, m; while(a != -1) { cout<<"\ndigita la benzina usata(-1 per terminare): "<<endl; cin>>a; cout<<"digita i kilometri fatti: "<<endl; cin>>b; cout<<"\nla benzina usata è: "<<a<<endl; cout<<"i kilometri fatti sono: "<<b<<endl; c = static_cast< double >(a)/ b; somma += c; contatore++; } m= static_cast<double>(somma)/contatore; cout<<"\nla media del rapporto benzina/kilometri e' : "<<setprecision(2) << setiosflags(ios::fixed | ios::showpoint)<<m<<endl; return 0; }

Rispondi quotando