题目链接:http://codeup.cn/problem.php?cid=100000568&pid=6
题目描述
用如下公式
求圆周率PI的近似值,直到发现某一项的绝对值小于10-6为止(该项不累加)。
要求输出的结果总宽度占10位,其中小数部分为8位。
程序中使用浮点型数据时,请定义为双精度double类型。
如果需要计算绝对值,可以使用C语言数学库提供的函数fabs,如求x的绝对值,则为fabs(x).
输入
无
输出
PI=圆周率的近似值
输出的结果总宽度占10位,其中小数部分为8位。
末尾输出换行。
样例输入
无
样例输出
PI=3.14159065
代码
#include<stdio.h>
#include<math.h>
int main() {
double t = 1;
double PI;
int i = 3, n = 1;
while(i < 1e6){
if (n % 2 ==0) // 奇偶别弄反了
t = t + (1.0 / i); //除法要加.0
else
t = t - (1.0 / i);
i = i + 2;
n++;
}
PI = 4.0 * t;
printf("PI=%10.8f\n", PI);
return 0;
}