作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 09:23:48
C语言调用函数funpi(e)使用格里高利公式求pi的近似值
程序:
#include
#include
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是随便一个数还是根据什么求出来的? 谢谢
再答: 随便一个数。但不能不给初值。