我的代码为什么是错误的,我的输出结果和样例不一样,我实在找不出问题
1条回答 默认 最新
关注
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); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用