《C程序设计教程(第四版)——谭浩强》
例题4.5 用π/4=1-1/3+1/5-1/7+……公式来计算π的近似值,知道某一项的绝对值小于10的六次方为止
代码:
//《C程序设计教程(第四版)——谭浩强》
//例题4.5 用π/4=1-1/3+1/5-1/7+……公式来计算π的近似值,知道某一项的绝对值小于10的六次方为止
#include <stdio.h>
#include <math.h>
int main()
{
float x = 1.0;
float sum = 1.0;
//循环
float i = 1.0;
for(i=1.0;fabs(x)>=pow(10.0,-6);i++)
{
x=pow(-1.0,i)*(1.0/(2.0*i+1.0));
sum+=x;
}
sum=sum*4.0;
printf("π的近似值为:%.6f\n",sum);
return 0;
}
运行代码:
编写代码时遇到的问题:
1.发现的规律
从公式π/4=1-1/3+1/5-1/7+……可以看出分子是按照奇数的规矩变化的——奇数的变化规律(2n+1);从分母可以看出,分母是恒定为1的;从符号可以看出,当循环为偶次时,变为负数,为奇数次时,变为正数。
2.循环的编写
2n+1——分母的编写
1——分子的编写
(-1)的i次方——符号的编写,当i初始化为1时,第一次的i值为-1
3.'/'号要注意的细节
/的两个操作数都为浮点数的时候,才会执行浮点数的运算规则
4.在进入循环之前,x的值必须初始化为1或者赋值为1,因为for循环的判断条件是x的绝对值不能小于等于10的-6次方