一道很简单的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;
}
但是运行结果不对啊,求改错。 展开
我做的是这样
#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;
}
但是运行结果不对啊,求改错。 展开
展开全部
改成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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询