我正在为学校做一个项目,经过计算后,打印结果总是“inf”。我做了很多研究,我无法弄清楚如何显示计算的值。
程序可以这样:
用户在特定范围内输入高和低扭曲因子和增量值。然后程序计算从低翘曲因子点到高翘曲因子点的速度,并将每个结果打印到屏幕。
老星跋涉的速度计算是v =(w ^ 3)* c 新星跋涉的速度计算是v =(w ^(10/3))* c
v是速度,w是扭曲因子,c是光速。这些计算是从学校提供的。变量newV代表新一代的速度计算,并且总是显示为'inf'。我被困在这里,不知道该怎么做。
以下是代码:
double oldV = 0.0;
double newV = 0.0;
const double c = 299792458.0;
for (double i = low; i < high; i = i+increment)
{
oldV = ((pow(low, 3))*c)*3.6;
newV = pow(low, (10 / (float)3)*c)*3.6;
low = low + increment;
printf("%20.2f%20.2lf%20.2a\n", i, oldV, newV);
}//end of calculation for loop
我知道这是一个阅读,但我必须解释,提前感谢帮助!
答案 0 :(得分:2)
这一行你的括号错了:
newV = pow(low, (10 / (float)3)*c)*3.6;
根据给出的公式,c
应该在pow
函数之外:
newV = pow(low, (10 / (float)3))*c*3.6;