按下面的近似公式计算:e=1+1/1!+1/2!+1/3!+......+1/n!+.....怎么我写的这个程序值为2.000000?
#include<stdio.h>#include<conio.h>intjc(intn){intb;for(b=1;n>0;n--)b*=n;returnb;}main...
#include<stdio.h>
#include<conio.h>
int jc(int n){
int b;
for(b=1;n>0;n--)
b*=n;
return b;
}
main(){
float e=1;
int n;
for(n=1;(1/jc(n))>=(1.0e-10);n++)
e+=(1/jc(n));
printf("e=%f",e+=(1/jc(n)));
getch();
} 展开
#include<conio.h>
int jc(int n){
int b;
for(b=1;n>0;n--)
b*=n;
return b;
}
main(){
float e=1;
int n;
for(n=1;(1/jc(n))>=(1.0e-10);n++)
e+=(1/jc(n));
printf("e=%f",e+=(1/jc(n)));
getch();
} 展开
1个回答
展开全部
给你一个参考程序
#include <stdio.h>
long factorial(long n)
{
if(n == 0 || n == 1)
return 1;
else
return n*factorial(n-1);
}
long power(long x, long y)
{
if(y == 0)
return 1;
else
return x*power(x, y-1);
}
void main()
{
double e;
int i;
for(i = 0, e = 0.0; i < 30; i++)
e += 1.0*power(1, i)/factorial(i);
printf("%lf", e);
printf("\n");
//getch();
}
}
更多追问追答
追问
我运行了下你给的程序,有个ERROR.
你能帮我分析下为什么我的程序是2.000000吗
追答
#include
#include
int jc(int n){
int b;
for(b=1;n>0;n--)
b*=n;
return b;
}
main(){
float e=1;
int n;
for(n=1;(1/jc(n))>=(1.0e-10);n++) //这里改为1.0/jc(n) 你的是int型号。所以是错误的
e+=(1/jc(n)); //这里也是
printf("e=%f",e+=(1/jc(n)));//还有这里
getch();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询