无法使程序正确计算
Unable to make program calculate correctly
我正试图制作一个能进行非常基本计算的程序,但由于某种原因,我无法正确地编写代码。它应该计算一次旅行每加仑的英里数。然后,您可以多次添加此信息(针对不同的行程(,每次都应该计算每加仑的总里程(即所有行程的平均每加仑里程(。这是代码:
#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加仑时,一切都很好。然后,如果我再做第三次,计算就会开始变得不正确。
你不能用这种方法计算平均值的平均值。在你的代码中,你要用计数器EACH迭代进行除法,而你应该只在最后进行除法。做你需要的事情的最好方法是这样的:
...
double totalMiles = 0;
double totalGallons = 0;
...
while (x != -1)
{
milePerRe = x/y;
totalMiles += x;
totalGallons += y;
milesPerTo = totalMiles / totalGallons;
...
然而,如果你的任务是明确计算行程的平均值(而不是英里/加仑的平均值(,你需要引入另一个变量,比如:
...
double currentMilesPerTo;
...
while (x != -1)
{
milePerRe = x/y;
milePerTo += milePerRe;
currentMilesPerTo = milePerTo/counter;
....
cout << "nTotal MPG: " << currentMilesPerTo;
...
我猜x和y的值没有正确更新。每次迭代后,都要尝试将x和y设为零。希望这样
TNQ
相关文章:
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- OpenGL - 在 NDC 中计算位置适用于着色器,但不适用于'regular'程序
- C++用于计算移动平均线的程序
- 我的C++级数计算程序出了什么问题?被困了好几个星期
- 使用 C++ 和 OOP 创建面积计算程序
- 我正在尝试编写一个简单的计算程序,但答案一直返回为 0
- 在c++上创建税务计算程序,错误为未初始化的局部变量
- 不计算程序中的最低和最高成绩。(C++)(流)
- 精确计算C++程序所使用的内存
- 使用OpenMP C++并行计算程序的积分
- 计算C++程序中留下评论的行数
- 计算程序形状的法线
- 如何计算程序的空间复杂度
- C++利息计算程序
- 计算程序集中每个任务的准确 CPU 使用率
- c++计算程序没有响应
- 计算程序中的估计时间
- 如何使大型计算程序更快