i=2 ,i*2.0-1.0 = 3,不是3.000000,所以 1/3 = 0,r就為0了,而不是1/3.000000=0.33333333;因為 此時r=0,程序跳出!
妳執行了2次,程序就跳出了,所以 pi=4。
改後代碼如下:
int main()
{
double i=0; //關鍵把i設為 浮點
double r=0,pi=0;
for(i=1.0;;i++)
{
r=1/(i*2-1);
if(int(i+1)%2!=0) r=-r; //int()方法,強制轉為int型,進行求余
pi=pi+r;
if(fabs(r)<10e-7) break;
}
pi=pi*4;
printf("pi=%f",pi);
system("pause");
return 0;
}
而且妳的程序很不規範,變量最好都給初值