C语言的求π的值?

用公式π/4≈1-1/3+1/5……求π的近似值,要求直到最后一项的绝对值小于0.000001为止。

输出格式:

按照“pi= 结果”的顺序输出,其中结果输出的格式宽度为10列,并保留4位小数。

输出样例:

pi= 3.1416

#include <stdio.h>

#include <math.h>


int main(){

double pi=0,result;

int i=1;

int s=-1;

do{

s*=-1;

result=1.0/i*s;

i+=2;

pi+=result;

}while(fabs(result)>0.000001);

printf("pi=%10.4lf\n",pi*4);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-26
你说的程序如下:
main()
{
float pi=0, x;
int n=1,k=1;
do
{
x=1.0/n;
pi=pi+k*x;
n+=2;
k=-k;
}while(x>=1E-6);
pi*=4;
printf("pi=%10.4f\n",pi);
}
有什么问题请留言。
第2个回答  2019-10-26

#include<stdio.h>

int main()

{ double pi=0;

  int i;

  for(i=1;i<1000000; i+=2)

    pi+=i%4==1?1.0/i:-1.0/i;        //π/4≈1-1/3+1/5……

  printf("%.4f\n",4*pi);

  return 0;

}

第3个回答  2019-10-26
示例代码如下:

#include <stdio.h>
#include <math.h>
int main()
{
double result,fn,t;
int i;
i=1;
result=0;
fn=t=1.0; //fn表示每一项的值
while(fabs(fn)>=1e-6)
{
result+=fn; //将每一项的fn累加
i+=2;
t*=-1; //切换符号
fn=t/i; //计算当前项的值
}
result*=4;
printf("pi = %-10.4f\n",result); //列宽为10,小数点后保留4位,-表示左对齐
return 0;
}
运行结果:

pi = 3.1416
希望对你有帮助,忘采纳哦。追问

可是为什么交上去还是错误

追答

提示什么错误呢,是不是输出格式不对?
你把printf("pi = %-10.4f\n",result);修改如下:
printf("pi= %10.4f\n",result);

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

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