J'essaye de faire un programme qui fait un calcul très basique, mais pour une raison quelconque je ne peux pas obtenir le bon code. Il est supposé calculer les miles par gallon pour un voyage. Vous pouvez ensuite ajouter cette information plusieurs fois (pour différents voyages) et pour chaque fois il devrait calculer le nombre total de miles par gallon (c'est-à-dire la moyenne des miles par gallon de tous les voyages). Voici le code:Impossible de faire un programme de caculate correctement
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int counter = 1;
double milePerRe, milePerTo = 0, x, y;
cout << "Enter the miles used (-1 to quit): ";
cin >> x;
cout << "Enter gallons: ";
cin >> y;
while (x != -1)
{
milePerRe = x/y;
milePerTo += milePerRe;
milePerTo /= counter;
cout << "MPG this tankful: " << setprecision(6) << fixed << milePerRe;
cout << "\nTotal MPG: " << setprecision(6) << fixed << milePerTo << endl << endl;
counter++;
cout << "Enter the miles used (-1 to quit): ";
cin >> x;
if (x != -1)
{
cout << "Enter gallons: ";
cin >> y;
}
}
system("pause");
return 0;
}
Quand je lance le programme et dire que j'entre 10 des miles et 1 sur le nombre de gallons la première fois et la deuxième fois, tout fonctionne bien. Ensuite, si je le fais une troisième fois, les calculs commencent à devenir incorrects.
Un conseil?
Où sont indiqués «milePerRe» et «milePerTo»? –
Comment incorrect? Comme dans la dernière décimale? –
Pourquoi "milePerTo" et "milePerRe" accumulent plutôt que de se réinitialiser sur chaque boucle? –