如何将这个公式输入到我的c++程序中

How can i input this formula into my c++ program?

本文关键字:我的 c++ 程序 输入      更新时间:2023-10-16

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

我需要正确的方法将上面的公式输入到我的程序中。我现在有以下,它给了我一个疯狂的数字:

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

我是一名初级程序员,C++是我学习的第一门语言,所以我非常感谢任何帮助。非常感谢。

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

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;

试试这个。如果你使用自己的幂函数,那么你可以把它存储在一些变量中,而不是一次又一次地调用这个方法。这将有利于效率和可读性。

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);
}

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

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

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