|  | 
 
| 
看了答案也不是很明白。
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  #include <stdio.h>
 #include <math.h>
 
 int main()
 {
 int sign = 1; // 表示符号
 double pi = 0.0, n = 1, term = 1.0; // n表示分母,term表示当前项的值
 
 while (fabs(term) >= 1e-8) // 1e-8表示10^(-8)
 {
 pi = pi + term;
 n = n + 2;
 sign = -sign;
 term = sign / n;
 }
 
 pi = pi * 4;
 printf("pi = %10.7f\n", pi);
 
 return 0;
 }
 希望能解读下这段代码的意思
 
 
首先,公式给你了,提示1,分子永远都是1,包括第一个,1=1/1,那么我们可以设一个常数1,来表示分子,也就是代码中的sign=1
 提示2,分母的规律就是从1开始,后面每一项都加2,那么,我们可以设分母一开始为1,每循环一次,加2,也就是代码中的n=1
 提示3,每次前一个数和后一个数的符号都相反,所以,在循环的时候要变号,也就是sign=-sign
 提示4,因为我们是把每一项的值加起来,而每一项会越来越小,因为分母越来越大,题目要我们求小数点后七位,所以到最后一项为八位的时候,就可以停下来了
 
 好,开始看代码,首先我们要明白,这题是要用循环,把每一项加起来求和。
 1.double pi = 0.0, n = 1, term = 1.0;    pi就是我们要求的总和,一开始是0,n就是分母,term是我们要求的每一项的值,一开始是1,从1加起的
 2.然后 while (fabs(term) >= 1e-8),循环,到小数点第8位的时候停下来(代码第9位才停下来的原因可能是取第8位,保持精准度),注意,要取绝对值,因为循环中term的值会变成负数
 3.            pi = pi + term;                  一开始总和pi和第一项相加,得到前一项的总和
 n = n + 2;                       然后分母加2
 sign = -sign;                     下一项是负数,所以,把sign变为负数
 term = sign / n;                然后得出下一项的值
 然后循环
 4.这样,得出pi是所有项的总和,然后乘4,得出真正的pi,一共循环到小数点的后八位,保持前七位的精度
 5.输出结果,10.7f表示输出10位位宽输出,其中小数占7位,不足的右边补空格。
 
 | 
 
  |