风寒= 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 ++是我学习的第一语言,所以我将非常感谢所有帮助。谢谢。
答案 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)
如果你手动计算,使用相同的数据,它会给你相同的疯狂数字,还是正确答案?如果你得到相同的疯狂数字,也许你需要将你的一些数字转换成正确的单位,例如温度可能应该是开尔文而不是摄氏或法尔希特。
(这应该是评论,但我还没有足够的代表......)