如何进行数学运算?

时间:2013-10-23 20:50:33

标签: c++ math

我已获得以下任务,并且不确定如何实施它:

  

计算出租车的费用。公式如下:

     第一公里的费用为50.每增加200米的费用为5.如果距离   超过30公里,然后每增加一公里增加10的费用。该   程序必须输入总距离(以km为单位)并计算出   电荷。

我编写了以下代码,但不知道如何处理“200m成本5”部分......

#include "stdafx.h"
#include <iostream>
using namespace std;

void main()
{
    double totalfee, km, m;
    cout << "distance" << endl;
    cin >> km;
    m = km * 1000;
    if (km < 30)
    {
        totalfee = 50;
        cout << "totalfee = " << totalfee << endl;
    }
    else if (km > 30)
    {
        totalfee = 60;
        cout << "totalfee = " << totalfee << endl;
    }
    system("pause");
}
  

它在c ++中

1 个答案:

答案 0 :(得分:0)

首先,这个问题含有一些含糊之处 - 我们知道第一公里的费用是50,而第一公里以上的任何200公里都会增加5公里。但是,如果距离大于30公里,那么每公里费用是10加5的顶部,还是取代了5?此外,如果部分金额计算,例如如果总距离是1100米,则收费5英镑?我假设部分金额不计算在内。

其次,您的代码中存在一些逻辑错误。这个块:

if (km < 30)
    {
        totalfee = 50;
        cout << "totalfee = " << totalfee << endl;
    }

忽略你应该在前1公里以上充电的额外5秒。

下一个街区:

else if (km > 30)
    {
        totalfee = 60;
        cout << "totalfee = " << totalfee << endl;
    }

包含与第一个相同的逻辑错误,但也忽略了每公里充电的额外10个,仅收取一次充电(并且当它不应该充电时充电,例如,如果总公里数是30.5)。 / p>

您可以尝试这样的事情:

//Assuming the two fees are both added separately from one another:

totalfee = 50; // Charge at least this much no matter what

// Pseudo-code:
if (km > 1)
{
   // Subtract 1 from km
   // Divide result by 0.2, discard any remainder
   // Multiply result by 5, and add the total to totalfee
}
if (km > 30)
{
   // Subtract 30 from km
   // Divide result by 1, discard any remainder
   // Multiply result by 10, and add the total to totalfee
}

cout << "totalfee = " << totalfee << endl;