要计算Pi,您可以使用等式pi / 4 = 1-(1/3)(1/5) – (1/7)… 乘以4,你得到Pi 我创建了一个公式来计算方程相对于其位置1 /(2n-1)的每一步,并为其编写代码 #include stdio.h#include stdlib.hint main(int argc,
乘以4,你得到Pi
我创建了一个公式来计算方程相对于其位置1 /(2n-1)的每一步,并为其编写代码
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
double p = 0;
double pi = 0;
int j = 1;
do
{
if (j % 2 == 1)
{
p = p + (1 / (2 * j - 1));
}
else
{
p = p - (1 / (2 * j - 1));
}
pi = p * 4;
printf("%lf\n", pi);
j++;
} while (j < 10);
return (EXIT_SUCCESS);
}
但它只是推出4.0000
为什么?我找不到我犯的错误.
替换声明
p = p + (1 / (2 * j - 1));/* 1/(2*j-1) results in integer, you won't get expected result */
同
p = p + (1. / (2 * j - 1));/* 1. means making floating type */
