c语言怎么求π
改正下列程序中的错误,并给源程序加上注释。该程序求π的值,直到某一项小于10-6(源程序error6_2.c)
输出示例
PI=3.14159 (改正后程序运行结果)
源程序(有错误的程序)
#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=fact(i)/multi(2*i+1);
sum=sum+item;
}
printf(“PI=%0.5lf ”,sum*2);
return 0;
}
int fact(int n)
{int i;
int res=1;
for(i=0;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>
double fact(int n); //注意数据范围
double multi(int n);//注意数据范围
int 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
",sum*2);
return 0;
}
double fact(int n)
{
int i;
double res=1;
for(i=1; i<=n; i++) //必须从1开始的
res=res*i;
return res;
}
double multi(int n)
{
int i;
double res=1;
for(i=3; i<=n; i=i+2)
res=res*i;
return res;
}