c语言 求圆周率 累加项比误差小循环终止,误差e从键盘输入

#include<stdio.h>
int main()
{
int f=-1,i,h;
double e;
double sum=0;
scanf("%lf",&e);
h=1/e;
for(i=1;i<=h;i=i+2)
{
f=-f;
sum=sum+f*1.0/i;
}
printf("%.5lf\n",sum);
return 0;
}
请问我的代码该怎么改正呢

#include<stdio.h>
int main()
{ int f=-1,i,h;
  double e;
  double sum=0;
  scanf("%lf",&e);
  h=1/e;
  for(i=1; i<=h; i=i+2)
  { f=-f;
    sum=sum+f*1.0/i;
  }
  printf("%.5lf\n",4*sum);
  return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-18
#include<stdio.h> 
int main() { int f=-1,i; double e,sum=0,h;
  scanf("%lf",&e); i=1; h=e+1;
  while ( h>=e ) { 
    f=-f; h=1.0/i; sum+=f*h; i+=2;
  } 
  printf("%.5lf\n",sum); 
  return 0; 
}

第2个回答  2019-03-15
有时候想想,一个人失忆是件多么幸福的事。不记得任何人,任何事,亦不会伤害谁。那些爱过的人,伤过的人,以及爱我的人,伤我的人,属于他们的记忆只会一片空白,像天空的浮云一样轻。如果我失忆,我一定不会为丢失记忆而痛苦,一定
第3个回答  2019-03-18

C语言
chubohao1218chubohao1218
10-10 16:09
等级 Bbs1
4次回复
c语言求e值问题求解决
#include<stdio.h>
long factorial(long number);
int main()
{
int n,a;
double i;
printf("请输入一个近似项数(<=12):\n");
scanf("%d",n);
for(a=1;a<=n;a++)
{
i=i+(1/factorial(a));
}
printf("e的近似值是:%f",i);
return 0;
}
long factorial(long number)
{
if(number<=1)
{
return 1;
}
else
{
return(number*factorial(number-1));
}
}
第4个回答  2019-03-16
#include <stdio.h> #include <math.h> void main() { double t=1,i=1,pi=0; while(fabs(t/i)>=1e-6) { pi+=t/i; t=-t; i+=2; } printf("%lf\n",pi*4); }本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网