내 프로그램은 함수에 전달 된 값의 자연 로그를 인쇄합니다. 내가 관찰 한 이상한 점은 더미 변수에 값 0.1을 할당하고 인자로 넘겨 주면 함수가 잘못된 값을 반환한다는 것입니다. 실제 값 0.1을 직접 전달하면 올바른 답을 얻을 수 있습니다.변수와 값으로 전달 된 매개 변수는 모두 다른 대답을 반환합니다.
#include <stdio.h>
double pow(double val, int x) {
int i;
for(i = 1; i <= x; i++) {
val *= val;
}
return val;
}
double log(double val) {
int i;
int n = 20;
double ret_val;
for(i = 1; i < n; i++) {
ret_val += pow(-1,i+1) * pow(val-1,i);
}
return ret_val;
}
int main() {
double dummy;
dummy = 0.1;
printf("%f",log(dummy));
printf("%f",log(0.1));
return 0;
}
여기에 뭔가가 빠졌습니까? 같은 가치가 다른 답을 어떻게 반환 할 수 있습니까?
'double ret_val;': 초기화되지 않은 변수를 사용했습니다. – BLUEPIXY
또한 내장 함수 이름 ('log'과'pow')을 사용하지 마십시오. – BLUEPIXY