一道很简单的C语言编程题求改错

题目的内容我做的是这样#include<stdio.h>intfact(intn);intmulti(intn);main(){inti;doublesum,item,e... 题目的内容

我做的是这样
#include <stdio.h>
int fact(int n);
int multi(int n);
main()
{
int i;
double sum,item,eps;
eps=1E-6;
sum=1;
item=1;
for(i=1;item>=eps;i++)
{
item=(double)fact(i)/multi(2*i+1);
sum=sum+item;
}
printf("PI=%0.5lf\n",sum*2);
return 0;
}
int fact (int n)
{
int i;
int res=1;
for (i=1;i<=n;i++)
res=res*i;
return res;
}
int multi (int n)
{
int i;
int res=1;
for (i=3;i<=n;i=i+2)
res=res*i;
return res;
}

但是运行结果不对啊,求改错。
展开
 我来答
kaixingui2012
推荐于2018-03-29 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6128万
展开全部
改成double才可以!不然,整数不够使,会超出数据的范围
#include <stdio.h>
double fact(int n);
double multi(int n);
main()
{
int i;
double sum,item,eps;
eps=1E-6;
sum=1;
item=1;
for(i=1;item>=eps;i++)
{
item=fact(i)/multi(2*i+1);
sum=sum+item;
}
printf("PI=%0.5lf\n",sum*2);
return 0;
}
double fact (int n)
{
int i;
double res=1;
for (i=1;i<=n;i++)
res=res*i;
return res;
}
double multi (int n)
{
int i;
double res=1;
for (i=1;i<=n;i=i+2)
res=res*i;
return res;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式