C语言调用函数funpi(e)使用格里高利公式求pi的近似值

程序:
#include<stdio.h>
#include<math.h>
int main(void)
{ double e,sum;
double funpi(double e);
scanf("%lf",&e);
sum=funpi(e);
printf("pi=%.4f",sum*4);
return 0;}
double funpi(double e)
{ int fuhao=1,fenmu=1;
double i,sum=0;
scanf("%d",&e);
while (fabs(i)>=e)
{i=fuhao*1.00/fenmu;
sum=sum+i;
fuhao=-fuhao;
fenmu=fenmu+2;
}
return sum;}

为何输入后没有输出??谢谢!

函数里,i 没有赋初值。
去掉 函数里的 scanf("%d",&e);因为你从主函数输入了。

int main(void){
double e,sum;
double funpi(double e);
scanf("%lf",&e);
sum=funpi(e);
printf("pi=%.4f",sum*4);
return 0;}

double funpi(double e){
int fuhao=1,fenmu=1;
double i=3.0,sum=0; // i 初值3
//scanf("%d",&e); //去掉输入
while (fabs(i)>=e) {
i=fuhao*1.00/fenmu;
sum=sum+i; fuhao=-fuhao; fenmu=fenmu+2;
}return sum;
}

输入
0.0001
pi=3.1418追问

请问i为何赋初值为3?这个3是随便一个数还是根据什么求出来的? 谢谢

追答

随便一个数。但不能不给初值。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网