求输出π/2的前六位的c语言程序

如题所述

#include <math.h>
#include <stdio.h>
main()
{
printf("%.6f", acos(0.0));
}追问

具体点

追答

如果要是通过公式计算的话你应该在问题中提出来具体用哪个公式
毕竟计算的方式有很多呀
cos (π/2) = 0
π/2 = acos(0.0)
我只不过是用了代码比较少的一种方法而已

追问

用这个

后面的不会写

谢谢啦,可不可以快点,急用

追答

第六行,也就是注释的第二行,推导错了

#include
#include

#define JD 1e-6
int main()
{
double i = 1.0;
double sign = 1.0;
double ans = 0.0;
double term;
do
{
term= 2 * sign / i;
ans += term;
i += 2;
sign*=- 1;
} while (fabs(term) > JD);
printf("%.6f", ans);

}

追问

求输出π的,为什么结果是3.1400024

不是这个工试?

追答

你公式变形有问题,看下我上面的那个程序吧
算pi的话把
term= 2 * sign / i;

换成
term= 4 * sign / i;

我才看明白
pi = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 ...
即使你要合并两项那也应该是
pi = 8/(1*3)+ 8/(5*7)+ 8/(9*11)
所以问题在 (2*i*2*i)上

追问

会了,不是这个问题,是double的精度问题

追答

double精确15位有效数字

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网