我正在尝试通过泰勒级数计算 ln(x)。这是我的代码:
#define N 10
float ln(float x){
int i;
float result;
float xt;
float xtpow;
int sign;
if(x > 0 && x <= 1){
xt = x - 1.0;
sign = -1;
xtpow = 1.0;
result = 0;
for(i = 1 ; i < N + 1; i++ );
{
// Problem here
printf("%d\n", i);
sign = sign * (-1);
xtpow *= xt;
result += xtpow * sign / i;
}
}else if(x >= 1)
{
return -1 * ln(1.0 / x);
}
return result;
}
问题出在我的系列周期(见上文)。似乎在 1 个循环变量之后i
变得 equal N + 1
,之后什么也没有发生。你有什么想法为什么会这样?