C语言编程 求高手指点!!!为什么运行结果4.00000000啊,错在哪?
#include<stdio.h>intmain(){intn=1,i=1,p;doublem=0.0,o;for(p=1;p>=0;p++){o=1/n;m=m+i*o...
#include<stdio.h>
int main()
{
int n=1,i=1,p;
double m=0.0,o;
for(p=1;p>=0;p++)
{
o=1/n;
m=m+i*o;
if(o<=1e-6)break;
i=-i;
n=n+2;
}
printf("π=%f\n",4*m);
return 0;
} 展开
int main()
{
int n=1,i=1,p;
double m=0.0,o;
for(p=1;p>=0;p++)
{
o=1/n;
m=m+i*o;
if(o<=1e-6)break;
i=-i;
n=n+2;
}
printf("π=%f\n",4*m);
return 0;
} 展开
展开全部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include<stdio.h> int main() { int n=1,i=1,p; double m=0.0,o; for (p=1;p>=0;p++) { o=1.0/n; //这里改成浮点型运算就可以了 m=m+i*o; if (o<=1e-6) break ; i=-i; n=n+2; } printf ( "π=%f\n" ,4*m); return 0; } |
算o的时候,1/n两遍都是整型,只会按照整型方式来计算,当n大于1时,得到的结果都为0。
所以把1改为浮点型的1.0,就可以让n也按照浮点型来计算了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询