C语言 运行后输出 PI=-1.#IND00 哪里有问题啊,求指教

#include<stdio.h>#include<math.h>doublefun(doubleeps){intn,i,j;doubles1,s=1,a,b;for(n... #include <stdio.h>
#include <math.h>
double fun ( double eps)
{
int n,i,j;
double s1,s=1,a,b;
for(n=2; s1>=eps; n++)
{
a=1.0;
b=1.0;
for (i=1; i<n; i++)
{
a*=i;
b*=2*i+1;
}
s1=(double) a/(double) b;
s+=s1;
return (s*2);
}

}
void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
double x ;
fp = fopen("bc04.in","r") ;
if(fp == NULL) {
printf("数据文件bc04.in不存在!") ;
return ;
}
wf = fopen("bc04.out","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%lf", &x) ;
fprintf(wf, "%lf\n", fun(x)) ;
}
fclose(fp) ;
fclose(wf) ;
}
main( )
{ double x;
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
}
展开
 我来答
White_MouseYBZ
推荐于2016-07-25 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6642万
展开全部
fun中,for(n=2; s1>=eps; n++)这一句里,s1还没有赋初值,怎么就用起来了?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式