如何将此公式输入到我的c ++程序中?

时间:2014-10-15 15:12:04

标签: c++ formula

  

风寒= 35.74 + 0.6215T - 35.75(V ^ 0.16)+ 0.4275T(V ^ 0.16)

我需要正确的方法将上述公式输入到我的程序中。我目前有以下内容,它给了我一个疯狂的号码:

WindChill = ((35.74 + (0.6215 * temperature))
    - (35.75 * pow(windSpeed, 0.16))
    + (0.4275 * temperature * pow(windSpeed, 0.16)));

我是初学程序员,C ++是我学习的第一语言,所以我将非常感谢所有帮助。谢谢。

3 个答案:

答案 0 :(得分:1)

您可以通过删除括号来简化。

double wind_chill = 35.74 + 0.6215 * T - 35.75 * pow(V, 0.16) + 0.4275 * T * pow(V, 0.16);

但在这种情况下,你计算两次力量。更好的方法是:

double pow_v = pow(V, 0.16);
double wind_chill = 35.74 + 0.6215 * T - 35.75 * pow_v + 0.4275 * T * pow_v;

答案 1 :(得分:1)

试试这个。如果您正在使用自己的电源功能,而不是一次又一次地调用该方法,您可以将其存储在某个变量中。这对提高效率和可读性都有好处。

double windPower = pow(windspeed, 0.16);
WindChill = (35.74 + (0.6215 * temp) - (35.75 * windPower ) + (0.4275 * temp * windPower ))

你的电源功能(如果你想定义它)是这样的: -

int pow(int x, unsigned int y)
{
    if( y == 0)
        return 1;
    else if (y%2 == 0)
        return power(x, y/2)*power(x, y/2);
    else
        return x*power(x, y/2)*power(x, y/2);

}

这是整数(因为我能够快速测试)。

答案 2 :(得分:0)

如果你手动计算,使用相同的数据,它会给你相同的疯狂数字,还是正确答案?如果你得到相同的疯狂数字,也许你需要将你的一些数字转换成正确的单位,例如温度可能应该是开尔文而不是摄氏或法尔希特。

(这应该是评论,但我还没有足够的代表......)