作业帮 > 综合 > 作业

帮忙解决一道初级编程题~

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 04:13:55
帮忙解决一道初级编程题~
π 的值可以用以下公式近似求得:
令a = 1,3,5,7,……,b=1或 -1,c = b / a表示括号中的每一项.
编写程序,计算 π 的近似值(忽略掉c的绝对值小于10-6的所有项),并累计此时括号中参与运算的总项数,输出这两个结果.
我的程序如下:
#include
#include
int main()
{
int n;
double a,b,c,f,PI=0;
for(n=1;;n++)
{
a=2*n-1;
if(n/2==0) b=-1;
else b=1;
c=b/a;
PI=4*PI+4*c;
f=fabs(c);
if(f
两处修改建议,
第一,if (n/2 == 0),应该修改成if (n % 2 == 1),判断奇偶应该用是否可以被2整除而不是除以2.
第二,PI 的累积求和不应该是PI=4*PI+4*c;
在定义PI的时候应该先赋给初值4.0,
然后PI=4*PI+4*c的这句修改成
PI += c;即可做到累计求和了.
这句修改也是配合if (n%2)来的,如果按n%2 == 0来处理,就应该PI -= c;
如果按照n%2 == 1来处理,就是PI += c;
再问: 谢谢了~~ 大致问题解决了 但是输出结果是3.214601 为什么不够精确啊 是因为对c的控制程度太靠前了 ?
再答: 嗯,在我这里运行也是这个结果。 因为题目里有这样一句话: 忽略掉c的绝对值小于10-6的所有项, 所以你得到的是一个近似值。 主要是看程序本身 :)
再问: 那这个答案也就没问题啰 ? 谢谢你拉~~
再答: 我觉得是没有问题的。