|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么输出为7.1415926
#include<stdio.h>
int main()
{
double sum=0,pi,exp1=1,term=1;
double i=1,sign=1;
while(exp1>=1e-8)
{
sum=sum+term;
exp1=1/i;
term=sign*exp1;
i=i+2;
sign=-sign;
}
pi=4*sum;
printf("%.7f\n",pi);
return 0;
}
答案
#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;
}
- while(exp1>=1e-8)
- {
- //sum=sum+term; 这里多加了一个1
- exp1=1/i;
- term=sign*exp1;
- i=i+2;
- sign=-sign;
- sum=sum+term;
- }
- pi=4*sum; //多加的那个1被乘4,结果多了4
复制代码
第一轮被计算了两次
|
|