前言
初学C语言,请大佬多提宝贵意见,感激不尽。欢迎各位初学者前来交流。
求: PI/4 = 1-1/3+1/5-1/7……
// PI/4 = 1-1/3+1/5-1/7
/*
--------------------------------------------------
多相线性累加,最后一项绝对值小于10^(-6)p61页
--------------------------------------------------
2019年8月14日12:35:39
若为float型,则输出为3.141598;若为double型,则输出为3.141595,原因:double和float都无法精确表示浮点数。
--------------------------------------------------
*/
# include<stdio.h>
# include<math.h>
int main(void)
{
int i, j;
double fl=1, PI=0; //若为float型,则输出为3.141598;若为double型,则输出为3.141595,原因:double和float都无法精确表示浮点数。
for (i=1; fl>=0.000001; i+=2) //不能把i += 2写成i+2,这样i自身的值并没有变化。
{
fl = 1.0/i;
PI = PI+pow(-1,(i-1)/2)*fl; //相邻的两相,符号相反,可以用b=1,下一个循环时b=-b,来控制轮流相反
// printf("%f\n",fl);
}
PI = PI*4;
printf("PI = %f\n",PI);
return 0;
}