c语言编程求派的近似值,改错题。应该结果是3.14159的可是运行出来都是2.00000啊魂淡!跪求大神指点!
#include<stdio.h>#include<stdlib.h>intfact(intn);intmulti(intn);intmain(void){inti;do...
#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 <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; /* 调试时设置断点 */
} 展开
2个回答
展开全部
修改后的代码如下:
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
int fact(int n); //改成 double fact(int n);
int multi(int n);//改成 double 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) //改成 double fact(int n)
{
int i;
double res;
res = 1;
for(i = 1; i <= n; i++)
res = res * i;
return res; /* 调试时设置断点 */
}
int multi(int n) //改成 double multi(int n)
{
int i;
double res;
res = 1;
for(i = 3; i <= n; i = i+2)
res = res * i;
return res; /* 调试时设置断点 */
}
#include <stdlib.h>
int fact(int n); //改成 double fact(int n);
int multi(int n);//改成 double 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) //改成 double fact(int n)
{
int i;
double res;
res = 1;
for(i = 1; i <= n; i++)
res = res * i;
return res; /* 调试时设置断点 */
}
int multi(int n) //改成 double multi(int n)
{
int i;
double res;
res = 1;
for(i = 3; i <= n; i = i+2)
res = res * i;
return res; /* 调试时设置断点 */
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询