은 내가 정의 어느 시점까지 특정 금액을 제공하는 프로그램을 만들려고 노력하고 있어요 "... 작동이 중지되었습니다"여기있다 :재귀 함수; ,
float sum(int n,float m);
main(void) {
float a,m=1.0;
int n;
scanf_s("%ld", &n);
a = sum(n, m);
printf("%f", a);
}
float sum(int n, float m) {
if ((n/m) < 0.0005) {
return 0;
}
else {
return n/m + sum(n, m + 2);
}
}
(I 정의한 점은 0.0005 것을 알) I가 값 큰 5와 동일한 줄 때, 프로그램은 날이 오류를 범 :
...has stopped working
을 또한 I는 0.5처럼 정의 포인트 증가하면 값의 개수가 너무 증가를 줄 수있다. 왜 이것이 일어 났을 것이라고 생각하니 어떻게 해결할 수 있습니까?
가능한 중복 https://stackoverflow.com/questions/26247345/segmentation-fault-using-scanf- : 당신은 반복적 인 솔루션으로 이동하여이 문제를 얻을 수 있습니다 with integer) – Alfabravo
호기심 때문에, 왜'int'에'% ld' ('long int'를 위해)를 사용하고 있습니까? 컴파일러에서 경고를 보셨습니까? – lurker
@Alfabravo 그 질문은 적용되지 않습니다. OP는'scanf_s' 호출을 위해 여기서'& n'을 사용합니다. – lurker