4
Taylor 시리즈에서 ln (x)을 계산하려고합니다. 여기 내 코드는 다음과 같습니다.math.h가없는 대수 계산
#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
이 같음이되고 N + 1
이되고 그 이후에 아무 일도 일어나지 않는 것 같습니다. 왜 그렇게 생각 했니?
여기서 디버깅하는 방법을 좋아합니다. 각 루프의 값을 인쇄하여 "추적자"에 넣으므로 문제가 발생한 위치를 확실히 알 수 있습니다. 나로부터 Upvote! –