我发现我的代码只适用于n <= 43429。如果n> 43429,则会导致分段错误。是数据类型或其他方面出错了吗?
这是我的代码和调试结果: 点击查看图片描述
这是我的代码和调试结果: 点击查看图片描述
#include<stdio.h>
#include<windows.h>
double recursive(long n);
int main(){
printf("\nEnter n:");
long n; scanf("%ld", &n);
printf("\n%.2lf", recursive(n));
getch();
return 0;
}
double recursive(long n){
if(n<=1) return 1;
else return (double)1/n + recursive(n-1);
}