c语言计算圆周率的代码
时间: 2023-12-19 08:29:29 浏览: 103
是两个C语言计算圆周率的代码:
代码一:
```c
#include <stdio.h>
#include <math.h>
int main(){
double n,m;
double pai_4=0,pai;
scanf("%lf",&n);
int i=0;
for(i=1;i<=n;i++){
m = 1.0/(2.0*float(i)-1.0);
if(i%2){
pai_4 = pai_4 + m;
} else{
pai_4 = pai_4 - m;
}
}
pai = 4*pai_4;
printf("%lf\n",pai);
return 0;
}
```
代码二:
```c
#include <stdio.h>
#include <math.h>
int main(){
float pi=1;
float n=1;
int j;
for(j=1;j<=100;j++,n++){
if(j%2==0){
pi*=(n/(n+1));
}else{
pi*=((n+1)/n); }
}
pi=2*pi;
printf("pi的值为:%.7f\n",pi);
return 0;
}
```
相关问题
c语言计算圆周率代码
这是一个使用C语言计算圆周率的代码,它使用了Leibniz公式来近似计算圆周率。代码如下:
#include <stdio.h>
#include <math.h>
int main() {
float i=1.0, sum=0;
float sign = 1.0;
while(fabs(sign/i)>=1e-6) {
sum = sum + sign/i;
sign = -sign;
i=i+2;
}
printf("圆周率是%f",sum*4);
return 0;
}
这个代码使用了一个while循环来计算圆周率,循环条件是当分子除以分母的结果小于1e-6时退出循环。在循环中,我们使用了Leibniz公式来计算圆周率的近似值。最后,我们将计算出的结果乘以4,就可以得到圆周率的近似值了。
c语言计算圆周率100000位
计算圆周率100000位需要更高的精度,可以使用多精度库来实现。以下是使用 GMP(GNU多精度数学库)计算圆周率100000位的 C 语言代码:
```c
#include <stdio.h>
#include <gmp.h>
int main()
{
mpf_set_default_prec(1000000); // 设置精度为 1000000 位
mpf_t pi, numerator, temp;
mpf_init_set_ui(pi, 0);
mpf_init_set_ui(numerator, 1);
mpf_init(temp);
int sign = 1;
for (int i = 0; i < 5000000; i++) {
mpf_div_ui(temp, mpf_get_ui(4), mpf_get_ui(numerator));
mpf_mul_si(temp, temp, sign);
mpf_add(pi, pi, temp);
mpf_add_ui(numerator, numerator, 2);
sign *= -1;
}
gmp_printf("%.1000000Ff", pi);
mpf_clear(pi);
mpf_clear(numerator);
mpf_clear(temp);
return 0;
}
```
这个程序使用了 GMP 多精度库来计算圆周率,精度设置为 1000000 位。循环了5000000次,可以得到100000位的圆周率。在循环中,我们使用了 `mpf_t` 类型的变量,这是 GMP 库中提供的多精度浮点数类型。使用 `gmp_printf()` 函数来输出结果。
需要注意的是,GMP库需要单独安装,并且需要链接 `-lgmp` 库。
阅读全文