本专栏仅仅用于个人记录刷题过程,如有更好的解决方法,可以留言哦
题目要求
用如下公式
求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不累加)。
要求输出的结果总宽度占10位,其中小数部分为8位。
程序中使用浮点型数据时,请定义为双精度double类型。
如果需要计算绝对值,可以使用C语言数学库提供的函数fabs,如求x的绝对值,则为fabs(x).
要求输入
无
要求输出
PI=圆周率的近似值
输出的结果总宽度占10位,其中小数部分为8位。
末尾输出换行。
样例
PI=3.14159065
AC不了,但我也不知道错哪里了,看出问题的同学可以给我留言哦,感谢!
#include<stdio.h>
#include<math.h>
int main(){
double eps = 1e-6;
double sum = 0;
int i = 0;
double now = 1.0/(2*i+1);
while( fabs(now)> eps){
if(i%2==1){
now = (-1.0)/(2*i+1);
}else{
now = 1.0/(2*i+1);
}
sum += now;
i++;
}
printf("%2.8lf\n",4 * sum);
return 0;
}