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:
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;
}
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.