C for循环中的相等性测试
我现在正在写一个程序,用泰勒级数和计算反正切。代码的中心部分如下所示:C for循环中的相等性测试,c,for-loop,equality,C,For Loop,Equality,我现在正在写一个程序,用泰勒级数和计算反正切。代码的中心部分如下所示: for(int i=0;i<n;i++) { firstval=sum; //sum=0 sum=sum+sumterm(x,i); //calculate the sum if(fabs(sum-firstval)<delta) //delta=10e-6 { s=i; } else s=0; } for(int i=0;i您可能希望改用wh
for(int i=0;i<n;i++)
{
firstval=sum; //sum=0
sum=sum+sumterm(x,i); //calculate the sum
if(fabs(sum-firstval)<delta) //delta=10e-6
{
s=i;
}
else s=0;
}
for(int i=0;i您可能希望改用while循环。退出while循环的条件可能是:
while (fabs(sum-firstval)>delta)
否则,其他建议(在变量s
被赋值为i
后使用中断符)也要工作。注意,10e-6
是1.0E-5
。在设置s=i;
之后,您可能需要使用break;
,这样您就不会再循环了。实际上,您得到的是i==n-1
,并且增量足够小,您可以再次设置s=i;
,这就是为什么您会看到所看到的内容。您大概是如果您的if
条件为真,则nt结束循环,因此您应该在s=i
之后放置一个break
。这现在起作用了,谢谢!