当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 3.7 编程练习题 第7题 欧洲风格耗油量和美国风格耗油量转换

C++ Primer Plus 6th 3.7 编程练习题 第7题 欧洲风格耗油量和美国风格耗油量转换

更新时间:2019-02-23 09:03:28浏览次数:1+次

C++ Primer Plus编程练习题3.7 第7题  欧洲风格耗油量和美国风格耗油量转换

题目:
7.编写一个程序,要求用户按欧洲风格输入汽车的耗油量(每100公里消耗的汽油量(升)),然后将其转换为美国风格的耗油量——每加仑多少英里。注意,除了使用不同的单位计量外,美国方法(距离/燃料)与欧洲方法(燃料/距离)相反。100公里等于62.14英里,1加仑等于3.875升。因此,19mpg大约合12.41/100km,127mpg大约合8.71/100km。

答案:书上无答案。

C++技术网辅导详解解答:
    接上一题,此题进行升级了。输入欧洲风格油耗量,然后转换为美国风格的油耗量。我们这里就需要清楚公里和英里以及加仑和升之间的换算单位。
    这里在耗油量风格转换的时候容易出错,当然只是数学问题。
    下面是参考代码:

#include <iostream>
using namespace std;
int main()
{
    const double c1 = 62.14;//100公里=62.14英里
    const double c2 = 3.875;//1加仑=3.875升
    double d2, v2;
    cout << "请输入驱车里程(公里): ";
    cin >> d2;
    cout << "请输入使用汽油量(升): ";
    cin >> v2;
    double rate2 = 100* v2 / d2 ; // 升/百公里
    cout << "欧洲耗油量:" << rate2 << " 升/百公里";
    double rate1 = c2 * c1 / rate2;
    cout << "美国耗油量:" << rate1 << "英里/加仑(mpg)";
    return 0;
}

    这个转换结果可能不正确,不要太在意,我们重在解决编程实现问题,而不是数学问题。因为这是一个大约数的换算,计算出来的结果对不上。

    这里勘误一下题目:题目里的例子是19mpg大约合12.41/100km,127mpg大约合8.71/100km。我们从比例也可以看得出来,19和127是6.68倍,而12.41和8.71之间连两倍都不到,可见这个错误是非常明显的。因为这里不是准确值,我们可以算出大致是十几二十几的数值。因为这个书是影印的,不排除是被干扰多写了一个1,所以原本可能是27的。以为用代码验证,前者是准确的,而后者则是27.6455。所以代码这个应该是和作者意图一致的,题目这个应该是27mpg大约合8.71/100km。