#include "stdio.h"
#include "math.h"
double funcos(double e, double x)
int main(void)
{
int repeat, ri
double e, sum, x
scanf("%d", &repeat)
for(ri = 1ri <= repeatri++){
scanf("%le%le", &e, &x)
sum=funcos(e,x)
printf("sum = %f\n", sum)
}
}
double funcos(double e,double x)
{
int i,d,flag
double item,b,di
d=0
flag=1
b=0.0
do{
di=1.0
for(i=1i<=di++){
di=di*i
}
item=flag*pow(x,d)/di
b=b+item
flag=-flag
d+=2
} while(fabs(item)>=e)
return b
}
你写的是使用泰勒公式求e,少一个1。正确的:e=1+1/1!+1/2!+1/3!+......
》C++代码(while循环)》》:
#include<iostream.h>
void main()
{
double e=1
double jc=1//求阶乘,并存入jc中
int i=1
while(1/jc>=1e-6)
{
e=e+1/jc
i++
jc=jc*i
}
cout<<"e="<<e<<endl
}
》C代码》》:
#include<stdio.h>
void main()
{
double e=1
double jc=1//求阶乘,并存入jc中
int i=1
while(1/jc>=1e-6)
{
e=e+1/jc
i++
jc=jc*i
}
printf("e=%f\n",e)
}