改错题,c语言编程求π近似值,可是运行结果是2.00000,应该的结果是3.14159啊魂淡!我觉得没啥错的了!

#include <stdio.h>
#include <stdlib.h>
int fact(int n);
int multi(int n);
int main(void)
{
int i;
double sum, item;
sum = 1;
for(i = 1;item >= 1e-6; i++){
item = fact(i) / multi(2*i+1);
sum = sum + item;
}
printf("PI=%0.5lf\n", sum * 2);
system("pause");
return 0;
}
int fact(int n)
{
int i;
double res;
res = 1;
for(i = 1; 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;
}

修改后的代码如下:
#include <stdio.h>
#include <stdlib.h>
double fact(int n);
double multi(int n);
int main(void)
{
int i;
double sum, item=10; // 初始时为item赋一个较大的值,不然第一次循环就是非法使用item
sum = 1;
for(i = 1;item >= 1e-6; i++)
{
item = fact(i) / multi(2*i+1);
sum = sum + item;
}
printf("PI=%0.5lf\n", sum * 2);
system("pause");
return 0;
}
double fact(int n) // 返回值为double
{
int i;
double res;
res = 1;
for(i = 1; i <= n; i++)res = res * i;
return res;
}
double multi(int n) // 返回值为double
{
int i;
double res;
res = 1;
for(i = 3; i <= n; i = i+2)res = res * i;
return res;
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

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