计算π的近似值,要求最后一项的误差小于0.000001
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 02:51:31
#include"stdio.h"voidmain(void){\x05doubleE,x;\x05inti,j;\x05for(E=0,i=1;;i++){\x05\x05for(j=2,x=1;j
这个是精确度的问题.因为本来式子就是近似运算.改成%.8lf能看到结果是3.14159245.也就是说这个估算的式子在0.0000001这边的精确度不够.我在while后面的条件里又加了一个0,结果如
#include#includevoidmain(){floats=0;inti;floatt=1;for(i=1;;i=i+2){if(fabs(t/i)
^的意思就是让你一直加下去,知道有一项足够小未知另外,你的公式少了一个1,如果要算出正确的e值,应该把下面程序中result的初始值改成1objectTest{defmain(args:Array[S
1.#include2.#include3.#include4.usingnamespacestd;5.6.intmain()7.{8.constintMAX_TIMES=200000000;9.sr
//你应该还少乘了一个4#include "stdio.h"#include "math.h"int main(){ &
#include#includevoidmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>1e-5){pi=pi+t;n=n+2;s=-
程序没有问题吧,你想问什么?再问:结果是1-=再答:#include<stdio.h>void main(){ int i,n,sign; doub
指出几个问题吧..(1)doublefuncos(doublee,doublex);函数申明应该放在main函数外面;(2)doublefuncos(doublee,doublex)函数里面的sum变
你的问题主要是类型的问题.因为a是int型的,你在计算的时候不转型成浮点型是不对的(1/a=0)因此你要写成:pi=pi+1.0/(2*a-1);pi=pi-1.0/(2*a-1);还有判断条件:wh
你把doublej=1;改成doublej=-1;就对了.你看公式里,1/3这一项是负的,所以你i=3的时候j应该是-1,不是1.
QNAN不是乱码,是程序写错了,已经有人写了基本正确的程序,不重复了.QNAN产生的原因:没有初值,计算0/0,负数开平方等明显错误时.其实,这种算法算到天荒地老也很难算出π.再问:Ϊʲô�ҵij���
因为1/3不小于0.000001,所有for语句没有被执行,pi=1,pi=4*pi,pi=4
修改如下:在vc6.0下运行正常,结果,PI=3.141595#include#includevoidmain(){doubles,a,i;i=0.0;s=1.0;do{i=i+1;s=s+1.0/(
呵呵,看看是这意思?OptionExplicitConstpi=3.14159265358979PrivateSubCommand1_Click()Dimx,nAsInteger,kAsInteger
这应该与程序中有效数字位数的给定有关.如果你的程序中,longdouble比double有效数字位数多,把pi定义为longdouble如果不行,那就把0.0000001设更小一点
放到后面,应为执行完for下面的大括号才执行这句n=n+2严格按照你列出来的等式,每执行一次for循环体进行一次算术运算,改成下面这样就可以了#include<stdio.h>#inclu
functionjiecheng(iasinteger)asdoubleforj=1toijiecheng*=inextendfunctiondime=0dimi=0doe+=1/jiecheng(i
num=m*(4/(2*n-1));改为num=m*(4.0/(2*n-1));试试再问:!!!!!哦哦,还要把m=pow((-1),(n+1));放到循环里面