C 嵌套在循环中的公式赢得';执行不当
我试图解决一个代码来运行这个系列pi=4-4/3+4/5-4/7+4/9。。。等等问题是,当我使用更高的值运行时,函数趋向于4,而不是31415。。。。程序似乎只运行n假定的最大值。我也不能让%%.lflf根据变量(p)设置小数。这个算法似乎是正确的,但几天后,我迫切需要任何帮助,非常感谢C 嵌套在循环中的公式赢得';执行不当,c,while-loop,C,While Loop,我试图解决一个代码来运行这个系列pi=4-4/3+4/5-4/7+4/9。。。等等问题是,当我使用更高的值运行时,函数趋向于4,而不是31415。。。。程序似乎只运行n假定的最大值。我也不能让%%.lflf根据变量(p)设置小数。这个算法似乎是正确的,但几天后,我迫切需要任何帮助,非常感谢 if ( 2 == route ) { printf("piseries calculator\n"); double pi,n,p; printf("define precisi
if ( 2 == route ) {
printf("piseries calculator\n");
double pi,n,p;
printf("define precision");
scanf("%lf",&p);
n=0;
while (n++ <= p ) {
pi = (4) - (n * ( 4 / ( 1 + 2 *(n)))) +( n * ( 4 / ( 3 + 2 * (n))));
}
printf("%%.lflf",p,pi);
return 0;
}
if(2==路由){
printf(“piseries计算器”);
双pi,n,p;
printf(“定义精度”);
scanf(“%lf”和&p);
n=0;
而(n++对于这些计算,我也会对其进行缩放
#include <stdio.h>
#define Niterations 1000
#define SCALE 1000
int main(void) {
double pi = 4.0 * SCALE;
for(unsigned i = 0; i < Niterations; i ++)
{
double f = 4.0 * SCALE / (3 + i * 2);
pi += (i & 1) ? f : -f;
}
printf("N iterations = %u, pi = %lf", Niterations, pi / SCALE);
// your code goes here
return 0;
}
#包括
#定义硝化作用1000
#定义比例尺1000
内部主(空){
双pi=4.0*刻度;
for(无符号i=0;i
测试一下
结果:N迭代次数=10000,pi=3.1416926435905190295727607008302584290504455566406250000000…
首先,使N和p成为整数
第二,n从3开始,不是吗
第三,Pi系列为4.0(-分数+分数)
最后,您可以使用%.*lf打印F以提高/限制输出的精度
if ( 2 == route )
{
printf("piseries calculator\n");
double pi=4.0;
int n,p;
printf("define precision");
scanf("%d",&p);
for(n=3;n<p;n+=2)
{
pi -= 4.0/n;
n+=2;
pi += 4.0/n;
}
printf("%.*lf",p,pi);
return 0;
}
if(2==路由)
{
printf(“piseries计算器”);
双pi=4.0;
int n,p;
printf(“定义精度”);
scanf(“%d”和“p”);
对于(n=3;n)你的公式实现是错误的。你只是在重新计算你每次迭代调用的pi
,忘记了以前的值。@EugeneSh是对的,也许你打算写pi+=
@Idle001,不仅如此……如果按比例缩放,这些计算将非常不精确。