3.已知3π=1-1/3+1/5-17…,编程求圆周率 ,要求精度大于e
(本题简单理解为若通项大于e则加,否则认为精度符合要求循环结束),e从键盘上输入,如0.001#include<stdio.h>intmain(){floati,k,e,...
(本题简单理解为若通项大于e则加,否则认为精度符合要求循环结束),e从键盘上输入,如0.001
#include<stdio.h>
int main()
{
float i,k,e,a,b,s=0,s1=0;
scanf("%f",&e);
for(i=1;i<=1000;i=i+2)
{
a=i*2+1;
break if(1/a>e)
{
s=s-1/a;
}
}
for(k=1;k<=1000;k=k+1)
{
b=k*4+1;
break if(1/b>e)
{
s1=s1+1/b;
}
}
printf("%.5f\n",1+s+s1);
}
怎么改啊啊啊啊啊啊啊啊啊啊,求助qaq
c语言 展开
#include<stdio.h>
int main()
{
float i,k,e,a,b,s=0,s1=0;
scanf("%f",&e);
for(i=1;i<=1000;i=i+2)
{
a=i*2+1;
break if(1/a>e)
{
s=s-1/a;
}
}
for(k=1;k<=1000;k=k+1)
{
b=k*4+1;
break if(1/b>e)
{
s1=s1+1/b;
}
}
printf("%.5f\n",1+s+s1);
}
怎么改啊啊啊啊啊啊啊啊啊啊,求助qaq
c语言 展开
2个回答
展开全部
你的代码有点胡写,那个级数也不是3π而是π/4。所以就不改了;提供一个供参考……
#include <stdio.h>
int main(int argc,char *argv[]){
double s,t,e;
int i;
printf("Input e(R: e>0)...\ne=");
if(scanf("%lf",&e)!=1 || e<=0){
printf("Input error, exit...\n");
return 0;
}
for(s=0,t=i=1;t>e;i+=2){
t=1.0/i;
s += (i+1)%4 ? t : -t;
}
printf("π≈%.5f\n",s*4);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询