c语言,cos近似值计算

Python016

c语言,cos近似值计算,第1张

你应该把di=1.0放在do-while循环里面开始处。修改后结果正确,程序如下:

#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)

}