新手求助
为什么输出为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
第一轮被计算了两次 两手空空儿 发表于 2022-9-7 20:22
第一轮被计算了两次
参考答案里不也在term==1的时候加到sum里了吗
你的循环第一次term=1,第二次 term 还是 = 1
答案里,第一次 term = 1,第二次 term = 1/3 了
你看我给你修改的代码,把累加放到后面就行了 两手空空儿 发表于 2022-9-7 20:31
你的循环第一次term=1,第二次 term 还是 = 1
答案里,第一次 term = 1,第二次 term = 1/3 了
你看我给你 ...
感谢
页:
[1]