这是一个求PI值的程序,但是总算出来是2.000000,作为初学者,我很困惑,求解答.....

#include <stdio.h>
int fact(int n);
int multi(int n);
int main(void)
{
int i;
double sum, item, eps;

eps = 1e-6;
sum = 1;
item = 1;
for(i = 1;item >= eps; i++){
item = fact(i) / multi(2*i + 1);
sum = sum + item;
} /* 调试时设置断点 */
printf("PI=%0.5lf\n", sum * 2);

return 0;
}

int fact(int n)
{
int i;
double res;
n=1e-6;
res = 1;
for(i = 0; i <= n; i++)
res = res * i;

return res; /* 调试时设置断点 */
}

int multi(int n)
{
int i;
double res;

res = 1;
for(i = 3; i <= n; i = i+2)
res = res * i;

return res; /* 调试时设置断点 */
}

第1个回答  2011-10-16
int fact(int n)
里面
n=1e-6;
感觉不对
变量成常量了
相似回答