题目描述
用如下公式
求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不累加)。要求输出的结果总宽度占10位,其中小数部分为8位。程序中使用浮点型数据时,请定义为双精度double类型。如果需要计算绝对值,可以使用C语言数学库提供的函数fabs,如求x的绝对值,则为fabs(x).
输入
无
输出
PI=圆周率的近似值
输出的结果总宽度占10位,其中小数部分为8位。
末尾输出换行。
样例输入 Copy
无
样例输出 Copy
PI=3.14159065
代码
#include<stdio.h>
#include<math.h>
int main() {
int i = 1, sign = 1; //sign 用来标记符号,i用来表示分母
double pi = 0, num = 1, PI; //pi表示PI/4
while (fabs(num) >= 1e-6)
{
/* code */
/*
num = sign * (1.0 / i);
sign = -sign;
pi = pi + num;
i += 2;
*/
pi = pi + num;
i += 2;
sign = -sign;
num = sign * (1.0 / i);
}
PI = 4 * pi;
printf("PI = %10.8lf", PI);
return 0;
}