运行之后是1.000000000000,怎么回事呢?
ffff是int,i也是int,算的结果也是int,所以变成了1
是你计算的时候转成float
改成sum = sum + ffff * 1.0 / i;
就可以了
另外,
if ((i-1)%4==0)
应该是
if ((i-1)%2==0)
最后的结果要乘以4,才是pi.
给您参考:
#include<stdio.h>
int main()
{
long int i,fm,n=19999;
double sum,pi;
sum=1.0;
i=1;
fm=1;
printf("Please wait. ");
while (--n) {
fm+=2;
if(i%2){
//printf("-1/%d",fm);
sum=sum-1.0/fm;
}
else {
//printf("+1/%d",fm);
sum=sum+1.0/fm;
}
i++;
}
pi=4*sum;
printf("=%f",pi);
return 0;
}