我的代码为什么是错误的,我的输出结果和样例不一样,我实在找不出问题
fact函数到后面会溢出哦,所以还是不要算阶乘了
#include<stdio.h>
#include<math.h>
double fact(int n){
double f = 1;
int i;
for(i = 1;i <= n;i++){
f = f * ((1.0 * i ) / (2 * i + 1));
}
return f;
}
int main(){
double eps,sum = 1,item = 1;
int i = 1,fenzi,fenmu = 1;
scanf("%le",&eps);
while(eps < item){
item = fact(i);
sum += item;
i++;
//printf("%.5lf\n",item);
}
printf("PI = %.5lf",sum * 2);
}