题目
C语言:圆周率的计算
Description
根据下面关系式,求圆周率pi的值,直到最后一项的值小于epsilon.epsilon的值由键盘输入.
pi/2=1+1/3+2!/(3*5)+3!/(3*5*7)+...+n!/(3*537*...*(2n+1))
Input
输入一个浮点数表示epsilon的值
Output
输出圆周率Pi的值,保留6位小数.
Sample Input
0.000001
Sample Output
3.141590
HINT
(参考:epsilon为0.01时,圆周率3.121501;epsioon为0.0001时,圆周率为3.141358)
#include<stdio.h>
int main()
{
int n;
double e,f,fz,fm,sum,pi;
n=0;
fz=1;
fm=1;
sum=0;
scanf("%lf",&e);
for(f=1;f>=e;n++)
{
if(n==0)
fz=1;
else
fz=fz*n;
fm=fm*(2*n+1);
f=fz/fm;
sum=sum+f;
}
pi=2*sum;
printf("%.6f ",pi);
return 0;
}
可是交上去就是wrong answer,而且我的答案小数点最后一位和题目的答案差1.希望帮我看看哪里错了.
提问时间:2020-07-24
Description
根据下面关系式,求圆周率pi的值,直到最后一项的值小于epsilon.epsilon的值由键盘输入.
pi/2=1+1/3+2!/(3*5)+3!/(3*5*7)+...+n!/(3*537*...*(2n+1))
Input
输入一个浮点数表示epsilon的值
Output
输出圆周率Pi的值,保留6位小数.
Sample Input
0.000001
Sample Output
3.141590
HINT
(参考:epsilon为0.01时,圆周率3.121501;epsioon为0.0001时,圆周率为3.141358)
#include<stdio.h>
int main()
{
int n;
double e,f,fz,fm,sum,pi;
n=0;
fz=1;
fm=1;
sum=0;
scanf("%lf",&e);
for(f=1;f>=e;n++)
{
if(n==0)
fz=1;
else
fz=fz*n;
fm=fm*(2*n+1);
f=fz/fm;
sum=sum+f;
}
pi=2*sum;
printf("%.6f ",pi);
return 0;
}
可是交上去就是wrong answer,而且我的答案小数点最后一位和题目的答案差1.希望帮我看看哪里错了.
提问时间:2020-07-24
答案
在for循环后加一句: sum -= f;
你多加了最后那个小于epsioon的值.
你多加了最后那个小于epsioon的值.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
热门考点
- 1如图,已知角AOB=80°,OC是角AOB外的一条射线,OD、OE平分角BOC、角AOC,能否求出角
- 2为什么桑梓是指故乡
- 3连词成句 AND BEST I LIKE FRIENDS MY SPRING
- 4杠杆原理的公式?怎么算
- 5如图,在△ABC中,∠ABC、∠ACB的平分线交于点O. (1)设∠A=n°(n为已知数),求∠BOC的度数; (2)当∠A为多少度时,∠BOC=3∠A.
- 6历史上淡泊名利的语句
- 7为什么有的物质会随着温度升高而降低溶解速率
- 8一张长方形的纸,长75厘米,宽60厘米.现在要把它裁成一块正方形,而且正方形边长为整厘米数,有几种裁法?
- 9They have been in the store( )
- 10读下面语段,在括号里填上恰当的成语