求圆周率近似值直到最后一项绝对值小于
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/16 01:56:24
应该是Pi/4=1-1/3+1/5-1/7+…+(-1)^(n-1)/(2*n-1)吧,PrivateSubForm_Load()DimPiAsSingle,iAsLongForm1.AutoRedr
这个是精确度的问题.因为本来式子就是近似运算.改成%.8lf能看到结果是3.14159245.也就是说这个估算的式子在0.0000001这边的精确度不够.我在while后面的条件里又加了一个0,结果如
DimsAsInteger,nAsintegerDimtAssingle,piAssingles=1:t=1:n=1:pi=0DoWhileAbs(t)>0.0001pi=pi+tn=n+2s=-st
doublesum=0;doublem=1;for(inti=1;i
(1)#includeintmain(){doubleitem=1,sum=1,n;for(n=1;n=1e-4);printf("Thesumis%lf\n",sum);return0;}就是这样吧
#include#includevoidmain(){floats=0;inti;floatt=1;for(i=1;;i=i+2){if(fabs(t/i)
//你应该还少乘了一个4#include "stdio.h"#include "math.h"int main(){ &
程序没有问题吧,你想问什么?再问:结果是1-=再答:#include<stdio.h>void main(){ int i,n,sign; doub
#include#includevoidmain(){intn,p=-1;doubleq=1.0,s=0.0;//q初始化要大于1e-6for(n=1;fabs(q)>=1e-6;n=n+2){p=-
#include#include#includeintmain(){doublepi,t,n,s;s=t=1;pi=0;n=1;while((fabs(t))>=1.0E-6){pi=pi+t;n=n
#include<stdio.h>#include<math.h>void main(){double s=0,pi,t,d,c;double i
修改如下:在vc6.0下运行正常,结果,PI=3.141595#include#includevoidmain(){doubles,a,i;i=0.0;s=1.0;do{i=i+1;s=s+1.0/(
这应该与程序中有效数字位数的给定有关.如果你的程序中,longdouble比double有效数字位数多,把pi定义为longdouble如果不行,那就把0.0000001设更小一点
#include#includevoidmain(){ints;floatn,t,pi;s=1,pi=0,n=t=1.0;do{pi+=t;n+=2;s=-s;t=s/n;}while(fabs(t)
PrivateSubCommand1_Click()a=1Don=n+1m=2*n-1s=s+a*1/ma=-aLoopUntilAbs(1/m)pi=4*sPrint"pi="&piEndSu
放到后面,应为执行完for下面的大括号才执行这句n=n+2严格按照你列出来的等式,每执行一次for循环体进行一次算术运算,改成下面这样就可以了#include<stdio.h>#inclu
DimaAsLong,sAsLong,DAsString,eAsLong,bAsLongD=1:a=1:s=1DoUntile>6D=((2*a)/(2*a+1))*((2*a)/(2*a-1))s=
在for循环后加一句:sum-=f;你多加了最后那个小于epsioon的值.
PrivateSubForm_Click()DimpiAsDoubleDimnAsLongn=1Dopi=pi+4*((-1)^(n-1)*(1/(2*n-1)))n=n+1LoopUntil1/(2