【发布时间】:2019-04-09 21:10:09
【问题描述】:
我上周的作业是
编写一个程序,读取 2 辆汽车消耗的汽油升数和行驶里程数,然后输出每辆车消耗的每加仑燃料的里程数,并比较两者的燃油效率。
我完成了。本周项目是对之前项目的修改和
添加两个void函数:
一个叫做 userInstruction 的指令告诉用户该做什么
另一个 displayResult 显示原始信息(升数和行驶里程数)和结果(英里/加仑)。
看来我已经设法让它大部分工作了。它至少可以编译和运行。然而,汽车 1 似乎显示了汽车 2 使用的燃料升数和行驶里程数,尽管它获得了正确的每加仑英里数。我不确定我做错了什么。也许我完全不符合她想要的东西,这就是为什么我无法弄清楚?
另外,作为一个附带问题,有没有办法将“对汽车 2 做同样的事情”进入 userInstruction void 函数?
const double LPG = 0.264179;
double mpg(double miles, double liters);
void userInstruction();
void displayResult(double mpg1, double mpg2, double liters, double miles);
int main()
{
char keepGoing;
double liters, miles, mpg1, mpg2;
do
{
userInstruction();
cin >> liters;
cin >> miles;
//calling function
mpg1 = mpg(miles, liters);
cout << endl << endl << "Do the same for Car 2. \n" << endl;
cin >> liters;
cin >> miles;
mpg2 = mpg(miles, liters);
displayResult(mpg1, mpg2, liters, miles);
if (mpg1 == mpg2)
{
cout << "Both cars have the same fuel efficiency. \n" << endl;
}
else if (mpg1 > mpg2)
{
cout << "Car 1 has better fuel efficiency. \n" << endl;
}
else
{
cout << "Car 2 has better fuel efficency. \n" << endl;
}
//Allows for repeating
cout << "Do you wish to keep going? (y/n) \n";
cin >> keepGoing;
}
while (keepGoing == 'y' || keepGoing == 'Y');
system("pause");
return 0;
}
double mpg(double miles, double liters)
{
double milesPerGallon;
milesPerGallon = miles / (liters * LPG);
return milesPerGallon;
}
void userInstruction()
{
cout << "Please enter the liters of gasoline consumed as well as the miles travelled. \n" << endl;
}
void displayResult(double mpg1, double mpg2, double liters, double miles)
{
cout << "Car 1 used: " << liters << " liters of fuel \n";
cout << "Car 1 drove: " << miles << " miles \n";
cout << "Car 1 gets: " << mpg1 << " miles per gallon \n" << endl;
cout << "Car 2 used: " << liters << " liters of fuel \n";
cout << "Car 2 drove: " << miles << " miles \n";
cout << "Car 2 gets: " << mpg2 << " miles per gallon \n" << endl;
}
这是我期望输入 (5 30) 和 (55 123) 的结果在各自正确的位置打印出来的地方。
使用的汽车1:55升燃料 1号车行驶:123英里 汽车 1 获得:每加仑 22.7119 英里 使用的汽车 2:55 升燃油 2号车行驶:123英里 汽车 2 获得:每加仑 8.46533 英里 1号车的燃油效率更高。【问题讨论】:
-
欢迎来到 Stack Overflow。请在minimal complete examples 上查看我们的页面。如果你简化你的代码(即让它做的更少)错误会很明显,你可能根本不需要我们的帮助。
-
错误值从何而来?从哪个变量?正确的值应该如何进入该变量?或者如果它确实进入了它,你的代码是否有可能在某个时候覆盖它?你的输出函数只得到一个升值和一个英里值;然而,它确实获得了 mpg 的两个值。它打印升两次,你如何期望它产生两个不同的值?
-
@Yunnosch 感谢您的意见和指导。我将
liters1, liters2, miles1, miles2添加到我的函数中,现在它可以工作了。