c语言求圆周率帮忙看看哪里错了

#include <stdio.h>#include <math.h>int main(){ int s,n; double t,pi; pi=0; n=1; s=1; t=1; for(;n<=1001;) { pi=pi+t; n=n+2; s=-s; t=s/n; } printf("pi=%f\n",pi); return 0;}

#include <stdio.h>

int main()

{ int s,n;

double t,pi;

pi=0; n=1;

s=1; t=1;

for(;n<=1001;)

{pi=pi+t;

n=n+2;

s=-s;

t=(double)s/n;

}

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

return 0;

}

追问

大哥
t=(double)s/n;这里为什么要加个double

追答

二个整数相除的商,仍是整数啊。
1/3是等于0的啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-11
printf("pi=%f\n",4*pi);追问

这不是重点重点是我算出来总是等于1.0

追答

t=(double)s/n;
s、n都是int型,相除结果为int型,先把s强制转换为double再除

相关了解……

你可能感兴趣的内容

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