【发布时间】:2011-06-30 11:44:54
【问题描述】:
我正在尝试制作一个进行非常基本计算的程序,但由于某种原因我无法正确编写代码。它应该计算一次旅行的每加仑英里数。然后,您可以多次添加此信息(针对不同的行程),并且每次都应计算每加仑的总里程数(即所有行程的每加仑平均英里数)。这是代码:
#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;
}
当我运行程序并说我第一次和第二次输入 10 英里和 1 加仑数时,一切正常。然后,如果我再次执行第三次,则计算开始变得不正确。
【问题讨论】:
-
milePerRe和milePerTo声明在哪里? -
有多不正确?就像最后一个小数?
-
为什么
milePerTo和milePerRe在每个循环中都累积而不是重置? -
你能给出一个示例输入/输出和不正确的输出吗?
-
按原样,它无法编译...(cf Petar Minchev 评论)
标签: c++